Skip to content

Package: DefinitionVariableNState

DefinitionVariableNState

nameinstructionbranchcomplexitylinemethod
DefinitionVariableNState()
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(RouterSoftware, TempVariableDefinition, Buffer, DefinitionFileParser)
M: 16 C: 51
76%
M: 1 C: 3
75%
M: 1 C: 2
67%
M: 2 C: 16
89%
M: 0 C: 1
100%

Coverage

1: package parser.states.definitionstates;
2:
3: import model.RouterSoftware;
4: import model.definition.AbstractVariableDefinition;
5: import parser.DefinitionFileParser;
6: import parser.ParserException;
7: import parser.tempparserobjects.TempVariableDefinition;
8: import symbols.AbstractSymbol;
9: import symbols.EmptySymbol;
10: import symbols.IdentifierSymbol;
11: import basic.Buffer;
12:
13: /**
14: *
15: * @author Muri
16: *
17: */
18: public class DefinitionVariableNState extends AbstractDefinitionState {
19:
20:         /**
21:          *
22:          * @param tVD
23:          * TempVariableDefinition
24:          * @param dFP
25:          * DefinitionFileParser
26:          * @param buffer
27:          * Buffer<Symbol>
28:          * @return
29:          * @throws InterruptedException
30:          * InterruptedException
31:          * @throws ParserException
32:          * ParserException
33:          */
34:         @Override
35:         public void parse(final RouterSoftware rs, final TempVariableDefinition tVD,
36:                         final Buffer<AbstractSymbol> buffer, final DefinitionFileParser dFP)
37:                         throws InterruptedException, ParserException {
38:                 final AbstractSymbol nextSymbol = buffer.peek();
39:•                if (nextSymbol instanceof EmptySymbol) {
40:                         // TODO what to Do if no Vaiable Exists?
41:                         tVD.setVariableN(null);
42:                         tVD.setArrayElement(false);
43:                         dFP.setState(new DefinitionTypeState());
44:                         buffer.remove();
45:•                } else if (nextSymbol instanceof IdentifierSymbol) {
46:                         final AbstractVariableDefinition variableN =
47:                                         dFP.getVariableDefinitionList()
48:                                                         .get(((IdentifierSymbol) nextSymbol).getText());
49:                         tVD.setVariableN(variableN);
50:                         tVD.setArrayElement(true);
51:                         dFP.setState(new DefinitionTypeState());
52:                         buffer.remove();
53:                 } else {
54:                         throw new ParserException("no valid symbol: "
55:                                         + buffer.peek().getClass().getCanonicalName());
56:                 }
57:         }
58: }