2 ID = id(STRING) -> id(STRING)
\r
3 ID_LIST = ID_LIST1 -> id_list(ID_LIST1)
\r
4 ID_LIST1 = ID+ separator comma
\r
6 VAR_LIST = VAR_LIST1 -> var_list(VAR_LIST1)
\r
7 VAR_LIST1 = VAR+ separator comma
\r
9 VAL_LIST = VAL_LIST1 -> val_list(VAL_LIST1)
\r
10 VAL_LIST1 = VAL+ separator comma
\r
12 AP_LIST = lpar AP_LIST1 rpar -> aplist(AP_LIST1)
\r
13 AP_LIST1 = APAR+ separator comma
\r
15 INDICES = A_EXPR+ separator comma
\r
17 EXF_LIST = WR_EXPR+ separator comma
\r
18 WR_EXPR = VAR_FUN WR_EXPR1 -> wr_exp(VAR_FUN,WR_EXPR1)
\r
19 WR_EXPR1 = colon A_EXPR WR_EXPR2 -> wr_exp1(A_EXPR,WR_EXPR2),
\r
21 WR_EXPR2 = colon A_EXPR -> wr_exp2(A_EXPR),
\r
25 VAL = id(STRING) -> id(STRING),
\r
26 int(INTEGER) -> int(INTEGER),
\r
27 char(CHAR) -> char(CHAR)
\r
29 APAR = integer -> integer,
\r
32 character -> character,
\r
34 semaphore -> semaphore,
\r
35 coroutine -> coroutine,
\r
39 CS_TYPE = coroutine ->coroutine,
\r
41 id(STRING) -> id(STRING)
\r
43 A_EXPR = A_EXPR plus A_EXPR -> plus(A_EXPR,A_EXPR),
\r
44 A_EXPR minus A_EXPR -> minus(A_EXPR,A_EXPR)
\r
46 A_EXPR times A_EXPR -> times(A_EXPR,A_EXPR),
\r
47 A_EXPR divides A_EXPR -> divides(A_EXPR,A_EXPR),
\r
48 A_EXPR div A_EXPR -> div(A_EXPR,A_EXPR),
\r
49 A_EXPR mod A_EXPR -> mod(A_EXPR,A_EXPR)
\r
51 minus A_EXPR -> min(A_EXPR),
\r
52 lpar A_EXPR rpar -> A_EXPR,
\r
53 int(INTEGER) -> int(INTEGER),
\r
55 VAR_FUN -> var_fun(VAR_FUN)
\r
58 B_EXPR = B_EXPR or_ B_EXPR -> or_(B_EXPR,B_EXPR)
\r
60 B_EXPR and_ B_EXPR -> and_(B_EXPR,B_EXPR)
\r
62 ACO_EXPR nequal ACO_EXPR -> nequal(ACO_EXPR,ACO_EXPR),
\r
63 ACO_EXPR equal ACO_EXPR -> equal(ACO_EXPR,ACO_EXPR),
\r
64 A_EXPR lesseq A_EXPR -> lesseq(A_EXPR,A_EXPR),
\r
65 A_EXPR less A_EXPR -> less(A_EXPR,A_EXPR),
\r
66 A_EXPR greatereq A_EXPR -> greatereq(A_EXPR,A_EXPR),
\r
67 A_EXPR greater A_EXPR -> greater(A_EXPR,A_EXPR),
\r
68 O_EXPR is CS_TYPE -> is(O_EXPR,CS_TYPE),
\r
69 O_EXPR in CS_TYPE -> in(O_EXPR,CS_TYPE)
\r
71 not_ B_EXPR -> not_(B_EXPR),
\r
72 lpar B_EXPR rpar -> B_EXPR,
\r
73 ts lpar VAR rpar -> ts(VAR),
\r
74 VAR_FUN -> var_fun(VAR_FUN),
\r
79 C_EXPR = VAR_FUN -> var_fun(VAR_FUN)
\r
81 char(CHAR) -> char(CHAR)
\r
83 O_EXPR = none -> none,
\r
85 THIS dot O_EXPR1 -> dot(THIS,O_EXPR1),
\r
86 this ID -> this(ID),
\r
87 O_EXPR1 -> o_exp1(O_EXPR1)
\r
88 O_EXPR1 = O_EXPR2 dot O_EXPR1 -> dot(O_EXPR2,O_EXPR1),
\r
89 O_EXPR3 -> o_exp3(O_EXPR3)
\r
90 O_EXPR2 = VAR_FUN2 qua ID -> qua(VAR_FUN2,ID),
\r
91 O_EXPR3 -> o_exp3(O_EXPR3)
\r
92 O_EXPR3 = new ID lpar AP_LIST1 rpar ->new(ID,AP_LIST1),
\r
94 VAR_FUN2 -> var_fun2(VAR_FUN2)
\r
96 AC_EXPR = A_EXPR -> a_exp(A_EXPR),
\r
97 C_EXPR -> c_exp(C_EXPR)
\r
99 ACO_EXPR = A_EXPR -> a_exp(A_EXPR),
\r
100 C_EXPR -> c_exp(C_EXPR),
\r
101 O_EXPR -> o_exp(O_EXPR)
\r
103 EXPR = A_EXPR -> a_exp(A_EXPR),
\r
104 B_EXPR -> b_exp(B_EXPR),
\r
105 C_EXPR -> c_exp(C_EXPR),
\r
106 O_EXPR -> o_exp(O_EXPR)
\r
108 THIS = this ID -> this(ID)
\r
110 VAR_FUN = THIS dot VAR_FUN1 -> dot(THIS,VAR_FUN1),
\r
111 VAR_FUN1 -> var_fun1(VAR_FUN1)
\r
112 VAR_FUN1 = O_EXPR2 dot VAR_FUN1 -> dot(O_EXPR2,VAR_FUN1),
\r
113 VAR_FUN2 -> var_fun2(VAR_FUN2)
\r
114 VAR_FUN2 = ID lpar AP_LIST1 rpar -> fcall(ID,AP_LIST1),
\r
115 ID lbra INDICES rbra -> indvar(ID,INDICES),
\r
116 id(STRING) -> id(STRING)
\r
118 VAR = THIS dot VAR1 -> dot(THIS,VAR1),
\r
120 VAR1 = O_EXPR2 dot VAR1 -> dot(O_EXPR2,VAR1),
\r
122 VAR2 = ID lbra INDICES rbra -> indvar(ID,INDICES),
\r
123 id(STRING) -> id(STRING)
\r
125 VAR_MAIN = main -> main,
\r
128 IF_B_EXPR = IF_B_EXPR orif IF_B_EXPR -> orif(IF_B_EXPR,IF_B_EXPR)
\r
130 IF_B_EXPR andif IF_B_EXPR -> andif(IF_B_EXPR,IF_B_EXPR)
\r
132 B_EXPR -> b_exp(B_EXPR)
\r
134 SIMP_EXPR = minus SIMP_EXPR1 -> min(SIMP_EXPR1),
\r
135 int(INTEGER) -> int(INTEGER),
\r
136 r(REAL) -> r(REAL),
\r
137 id(STRING) -> id(STRING),
\r
138 char(CHAR) -> char(CHAR),
\r
139 str(STRING) -> str(STRING)
\r
141 SIMP_EXPR1 = int(INTEGER) -> int(INTEGER),
\r
142 r(REAL) -> r(REAL),
\r
143 id(STRING) -> id(STRING)
\r