Skip to contentMethod: DefinitionIdentifierState()
      1: package parser.states.definitionstates;
2: 
3: import model.RouterSoftware;
4: import parser.DefinitionFileParser;
5: import parser.ParserException;
6: import parser.tempparserobjects.TempVariableDefinition;
7: import symbols.AbstractSymbol;
8: import symbols.IdentifierSymbol;
9: import basic.Buffer;
10: 
11: /**
12:  * 
13:  * @author Muri
14:  * 
15:  */
16: public class DefinitionIdentifierState extends AbstractDefinitionState {
17: 
18:         /**
19:          * 
20:          * @param tVD
21:          *            TempVariableDefinition
22:          * @param dFP
23:          *            DefinitionFileParser
24:          * @param buffer
25:          *            Buffer<Symbol>
26:          * @return
27:          * @throws InterruptedException
28:          *             InterruptedException
29:          * @throws ParserException
30:          *             ParserException
31:          */
32:         @Override
33:         public void parse(final RouterSoftware rs, final TempVariableDefinition tVD,
34:                         final Buffer<AbstractSymbol> buffer, final DefinitionFileParser dFP)
35:                         throws InterruptedException, ParserException {
36:                 final AbstractSymbol nextSymbol = buffer.peek();
37:                 if (nextSymbol instanceof IdentifierSymbol) {
38:                         tVD.setName(((IdentifierSymbol) nextSymbol).getText());
39:                         tVD.setPosition(nextSymbol.getPosition());
40:                         buffer.remove();
41:                         dFP.setState(new DefinitionOptState());
42:                 } else {
43:                         throw new ParserException("no valid symbol: "
44:                                         + buffer.peek().getClass().getCanonicalName());
45:                 }
46:         }
47: 
48: }