Skip to content

Package: AssignmentIdentifierState

AssignmentIdentifierState

nameinstructionbranchcomplexitylinemethod
AssignmentIdentifierState()
M: 0 C: 3
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
parse(RouterConfiguration, TempVariableAssignment, Buffer, AssignmentFileParser)
M: 34 C: 42
55%
M: 2 C: 2
50%
M: 2 C: 1
33%
M: 4 C: 11
73%
M: 0 C: 1
100%

Coverage

1: package parser.states.assignmentstates;
2:
3: import model.RouterConfiguration;
4: import parser.AssignmentFileParser;
5: import parser.ParserException;
6: import parser.states.GlobalFunctions;
7: import parser.tempparserobjects.TempVariableAssignment;
8: import symbols.AbstractSymbol;
9: import symbols.EqualSignSymbol;
10: import symbols.IdentifierSymbol;
11: import basic.Buffer;
12:
13: /**
14: *
15: * @author Muri
16: *
17: */
18: public class AssignmentIdentifierState extends AbstractAssignmentState {
19:
20:         /**
21:          *
22:          * @param tVA
23:          * TempVariableAssignment
24:          * @param buffer
25:          * Buffer<Symbol>
26:          * @param aFP
27:          * AssignmentFileParser
28:          * @throws InterruptedException
29:          * InterruptedException
30:          * @return
31:          * @throws ParserException
32:          * ParserException
33:          */
34:         @Override
35:         public void parse(final RouterConfiguration rc, final TempVariableAssignment tVA,
36:                         final Buffer<AbstractSymbol> buffer, final AssignmentFileParser aFP)
37:                         throws InterruptedException, ParserException {
38:                 final AbstractSymbol nextSymbol = buffer.peek();
39:•                if (nextSymbol instanceof IdentifierSymbol) {
40:                         tVA.setName(((IdentifierSymbol) nextSymbol).getText());
41:                         tVA.setPosition(nextSymbol.getPosition());
42:                         tVA.setVariableDefinition(GlobalFunctions.getTheInstance().searchVariableDefinition(
43:                                         rc.getRouterSoftware(), ((IdentifierSymbol) nextSymbol).getText()));
44:                         buffer.remove();
45:•                        if (buffer.peek() instanceof EqualSignSymbol) {
46:                                 aFP.setState(new AssignmentValueState());
47:                                 buffer.remove();
48:                         } else {
49:                                 throw new ParserException("no expected symbol: "
50:                                                 + buffer.peek().getClass().getCanonicalName()
51:                                                 + " expected EqualSignSymbol");
52:                         }
53:                 } else {
54:                         throw new ParserException("no valid symbol: "
55:                                         + buffer.peek().getClass().getCanonicalName());
56:                 }
57:         }
58: }