MCPcopy Create free account
hub / github.com/atas76/openengine / parse

Method parse

src/main/java/org/fgn/parser/Parser.java:34–81  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

32 }
33
34 public Statement parse() throws ParserException {
35
36 Statement statement = new Statement();
37
38 if (COMMENT.equals(tokens.get(0))) {
39 statement.setComment(tokens.get(1));
40 return statement;
41 }
42
43 parseTime(statement);
44 parseTeam(statement);
45 checkTeamSeparator();
46 parseStateIn(statement); // TODO Use a common parseStatement method: this had better be left for later
47
48 String token = getNextToken();
49
50 switch (token) {
51 case ACTION_DELIMITER:
52 parseAction(statement);
53 confirmToken(index++, OUTCOME_DELIMITER);
54 evaluateCurrentToken(statement);
55 break;
56 case OUTCOME_DELIMITER:
57 evaluateCurrentToken(statement);
58 break;
59 case COMMENT:
60 statement.setComment(tokens.get(++index));
61 break;
62 default:
63 throw new ParserException("Syntax error: action or default outcome operator expected");
64 }
65
66 if (hasTokens()) {
67 switch(tokens.get(index)) {
68 case COMMENT:
69 statement.setComment(tokens.get(++index));
70 break;
71 case OUTCOME_STATE_DELIMITER:
72 ++index;
73 parseStateOut(statement);
74 break;
75 default:
76 throw new ParserException("Unexpected end of statement");
77 }
78 }
79
80 return statement;
81 }
82
83 private void evaluateCurrentToken(Statement statement) throws ParserException {
84 if (ActionOutcome.hasEntity(lookaheadToken())) {

Callers

nothing calls this directly

Calls 12

setCommentMethod · 0.95
parseTimeMethod · 0.95
parseTeamMethod · 0.95
checkTeamSeparatorMethod · 0.95
parseStateInMethod · 0.95
getNextTokenMethod · 0.95
parseActionMethod · 0.95
confirmTokenMethod · 0.95
evaluateCurrentTokenMethod · 0.95
hasTokensMethod · 0.95
parseStateOutMethod · 0.95
equalsMethod · 0.45

Tested by

no test coverage detected