-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfirst-follow.txt
78 lines (76 loc) · 5.57 KB
/
first-follow.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<RULE> : first
follow
<PROGRAM> : SUB, RETURN, LBRACE, LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, IF, UNLESS, NOT, PLUS, MINUS
void follow
<PROGRAM_V> : eps, SUB, RETURN, LBRACE, LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, IF, UNLESS, NOT, PLUS, MINUS
void follow
<PROGRAM_F> : SUB, RETURN, LBRACE, LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, IF, UNLESS, NOT, PLUS, MINUS
SUB, RETURN, LBRACE, LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, IF, UNLESS, NOT, PLUS, MINUS
<FUNCTION> : SUB
SUB, RETURN, LBRACE, LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, IF, UNLESS, NOT, PLUS, MINUS
<FUNCTION_ARGUMENT> : LPAR, eps
LBRACE
<ARGUMENT_LIST> : VAR, eps
RPAR
<ARGUMENT_LIST_V> : COMMA, eps
RPAR
<INSTRUCTION_LIST> : eps, RETURN, LBRACE, LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, IF, UNLESS, NOT, PLUS, MINUS
RBRACE
<FUNCTION_CALL> : CALL_MARK
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK, LAZY_OR, LAZY_AND, DIFFERENT, EQ, EQUALS, NE, GE, GREATER, GREATER_EQUALS, GT, LE, LOWER, LOWER_EQUALS, LT, PLUS, MINUS, CONCAT_MARK, TIMES, DIVIDE
<ARGUMENT_CALL_LIST> : eps, LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, NOT, PLUS, MINUS
RPAR
<ARGUMENT_CALL_LIST_V> : COMMA, eps
RPAR
<INSTRUCTION> : RETURN, LBRACE, LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, IF, UNLESS, NOT, PLUS, MINUS
RBRACE, SUB, RETURN, LBRACE, LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, IF, UNLESS, NOT, PLUS, MINUS
<INSTRUCTION_F> : eps, IF, UNLESS
SEMICOLON
<CONDITION> : IF, UNLESS
LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, NOT, PLUS, MINUS
<CONDITION_END> : ELSIF, ELSE, eps
RBRACE, SUB, RETURN, LBRACE, LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, IF, UNLESS, NOT, PLUS, MINUS
<EXPRESSION> : LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, NOT, PLUS, MINUS
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON
<EXPRESSION_V> : ASSIGN_MARK, eps
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON
<EXPRESSION_TWO> : LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, NOT, PLUS, MINUS
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK
<EXPRESSION_TWO_V> : LAZY_OR, eps
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK
<EXPRESSION_THREE> : LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, NOT, PLUS, MINUS
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK, LAZY_OR, LAZY_AND
<EXPRESSION_THREE_V> : LAZY_AND, eps
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK, LAZY_OR, LAZY_AND
<EXPRESSION_FOUR> : LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, NOT, PLUS, MINUS
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK, LAZY_OR, LAZY_AND, DIFFERENT, EQ, EQUALS, NE
<EXPRESSION_FOUR_V> : eps, DIFFERENT, EQ, EQUALS, NE
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK, LAZY_OR, LAZY_AND, DIFFERENT, EQ, EQUALS, NE
<EXPRESSION_FOUR_F> : DIFFERENT, EQ, EQUALS, NE
LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, NOT, PLUS, MINUS
<EXPRESSION_FIVE> : LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, NOT, PLUS, MINUS
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK, LAZY_OR, LAZY_AND, DIFFERENT, EQ, EQUALS, NE, GE, GREATER, GREATER_EQUALS, GT, LE, LOWER, LOWER_EQUALS, LT
<EXPRESSION_FIVE_V> : eps, GE, GREATER, GREATER_EQUALS, GT, LE, LOWER, LOWER_EQUALS, LT
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK, LAZY_OR, LAZY_AND, DIFFERENT, EQ, EQUALS, NE, GE, GREATER, GREATER_EQUALS, GT, LE, LOWER, LOWER_EQUALS, LT
<EXPRESSION_FIVE_F> : GE, GREATER, GREATER_EQUALS, GT, LE, LOWER, LOWER_EQUALS, LT
LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, NOT, PLUS, MINUS
<EXPRESSION_SIX> : LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, NOT, PLUS, MINUS
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK, LAZY_OR, LAZY_AND, DIFFERENT, EQ, EQUALS, NE, GE, GREATER, GREATER_EQUALS, GT, LE, LOWER, LOWER_EQUALS, LT, PLUS, MINUS, CONCAT_MARK
<EXPRESSION_SIX_V> : eps, PLUS, MINUS, CONCAT_MARK
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK, LAZY_OR, LAZY_AND, DIFFERENT, EQ, EQUALS, NE, GE, GREATER, GREATER_EQUALS, GT, LE, LOWER, LOWER_EQUALS, LT, PLUS, MINUS, CONCAT_MARK
<EXPRESSION_SIX_F> : PLUS, MINUS, CONCAT_MARK
LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, NOT, PLUS, MINUS
<EXPRESSION_SEVEN> : LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, NOT, PLUS, MINUS
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK, LAZY_OR, LAZY_AND, DIFFERENT, EQ, EQUALS, NE, GE, GREATER, GREATER_EQUALS, GT, LE, LOWER, LOWER_EQUALS, LT, PLUS, MINUS, CONCAT_MARK, TIMES, DIVIDE
<EXPRESSION_SEVEN_V> : eps, TIMES, DIVIDE
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK, LAZY_OR, LAZY_AND, DIFFERENT, EQ, EQUALS, NE, GE, GREATER, GREATER_EQUALS, GT, LE, LOWER, LOWER_EQUALS, LT, PLUS, MINUS, CONCAT_MARK, TIMES, DIVIDE
<EXPRESSION_SEVEN_F> : TIMES, DIVIDE
LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, NOT, PLUS, MINUS
<EXPRESSION_EIGHT> : LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK, NOT, PLUS, MINUS
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK, LAZY_OR, LAZY_AND, DIFFERENT, EQ, EQUALS, NE, GE, GREATER, GREATER_EQUALS, GT, LE, LOWER, LOWER_EQUALS, LT, PLUS, MINUS, CONCAT_MARK, TIMES, DIVIDE
<EXPRESSION_EIGHT_F> : NOT, PLUS, MINUS
NOT, PLUS, MINUS, LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK
<EXPRESSION_NINE> : LPAR, INTEGER, FLOAT, STRING, VAR, CALL_MARK
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK, LAZY_OR, LAZY_AND, DIFFERENT, EQ, EQUALS, NE, GE, GREATER, GREATER_EQUALS, GT, LE, LOWER, LOWER_EQUALS, LT, PLUS, MINUS, CONCAT_MARK, TIMES, DIVIDE
<SIMPLE_EXPRESSION> : INTEGER, FLOAT, STRING, VAR, CALL_MARK
IF, UNLESS, COMMA, LBRACE, RPAR, SEMICOLON, ASSIGN_MARK, LAZY_OR, LAZY_AND, DIFFERENT, EQ, EQUALS, NE, GE, GREATER, GREATER_EQUALS, GT, LE, LOWER, LOWER_EQUALS, LT, PLUS, MINUS, CONCAT_MARK, TIMES, DIVIDE