[Feature] 写完了 打死不改了
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
文法:
|
||||
key: Program
|
||||
0 Program ::= . StatementList
|
||||
key: StatementList
|
||||
1 StatementList ::= . LBrace Statement_0 RBrace
|
||||
key: IfStatement
|
||||
2 IfStatement ::= . If ConditionPart PartIfStatement Else Statement
|
||||
3 IfStatement ::= . If ConditionPart Statement
|
||||
key: PartIfStatement
|
||||
4 PartIfStatement ::= . If ConditionPart PartIfStatement Else PartIfStatement
|
||||
5 PartIfStatement ::= . NoIfStatement
|
||||
key: ConditionPart
|
||||
6 ConditionPart ::= . LParen Condition RParen
|
||||
key: Condition
|
||||
7 Condition ::= . ConditionalExpression LogicalOperator_ConditionalExpression_0
|
||||
key: ConditionalExpression
|
||||
8 ConditionalExpression ::= . Expression Operator Expression
|
||||
9 ConditionalExpression ::= . Expression
|
||||
key: Expression
|
||||
10 Expression ::= . Term AddLike_Term_0
|
||||
key: Statement
|
||||
11 Statement ::= . IfStatement
|
||||
12 Statement ::= . NoIfStatement
|
||||
key: NoIfStatement
|
||||
13 NoIfStatement ::= . AssignmentStatement Semicolon
|
||||
14 NoIfStatement ::= . VariableDefinition Semicolon
|
||||
15 NoIfStatement ::= . LBrace Statement_1 RBrace
|
||||
16 NoIfStatement ::= . ConstantDefinition Semicolon
|
||||
17 NoIfStatement ::= . Semicolon
|
||||
key: AssignmentStatement
|
||||
18 AssignmentStatement ::= . Identifier Equal Expression
|
||||
key: Term
|
||||
19 Term ::= . Factor MultiplyLike_Factor_0
|
||||
key: ConstantDefinition
|
||||
20 ConstantDefinition ::= . Const VariableDefinition
|
||||
key: VariableDefinition
|
||||
21 VariableDefinition ::= . Type Identifier__AssignmentStatement_0 Comma_Identifier__Comma_AssignmentStatement_0
|
||||
key: Type
|
||||
22 Type ::= . Int
|
||||
23 Type ::= . Char
|
||||
key: Factor
|
||||
24 Factor ::= . Identifier
|
||||
25 Factor ::= . Number
|
||||
26 Factor ::= . Character
|
||||
27 Factor ::= . LParen Expression RParen
|
||||
key: AddLike
|
||||
28 AddLike ::= . Plus
|
||||
29 AddLike ::= . Minus
|
||||
key: MultiplyLike
|
||||
30 MultiplyLike ::= . Multiply
|
||||
31 MultiplyLike ::= . Divide
|
||||
32 MultiplyLike ::= . Modulo
|
||||
key: Number
|
||||
33 Number ::= . UnsignedNumber
|
||||
34 Number ::= . Minus UnsignedNumber
|
||||
35 Number ::= . Plus UnsignedNumber
|
||||
key: Operator
|
||||
36 Operator ::= . EqualTo
|
||||
37 Operator ::= . NotEqualTo
|
||||
38 Operator ::= . LessThan
|
||||
39 Operator ::= . GreaterThan
|
||||
40 Operator ::= . LessThanOrEqual
|
||||
41 Operator ::= . GreaterThanOrEqual
|
||||
key: LogicalOperator
|
||||
42 LogicalOperator ::= . And
|
||||
43 LogicalOperator ::= . Or
|
||||
key: Statement_0
|
||||
44 Statement_0 ::= .
|
||||
45 Statement_0 ::= . Statement Statement_0
|
||||
key: LogicalOperator_ConditionalExpression_0
|
||||
46 LogicalOperator_ConditionalExpression_0 ::= .
|
||||
47 LogicalOperator_ConditionalExpression_0 ::= . LogicalOperator ConditionalExpression LogicalOperator_ConditionalExpression_0
|
||||
key: AddLike_Term_0
|
||||
48 AddLike_Term_0 ::= .
|
||||
49 AddLike_Term_0 ::= . AddLike Term AddLike_Term_0
|
||||
key: Statement_1
|
||||
50 Statement_1 ::= .
|
||||
51 Statement_1 ::= . Statement Statement_1
|
||||
key: MultiplyLike_Factor_0
|
||||
52 MultiplyLike_Factor_0 ::= .
|
||||
53 MultiplyLike_Factor_0 ::= . MultiplyLike Factor MultiplyLike_Factor_0
|
||||
key: Identifier__AssignmentStatement_0
|
||||
54 Identifier__AssignmentStatement_0 ::= . Identifier
|
||||
55 Identifier__AssignmentStatement_0 ::= . Identifier Identifier__AssignmentStatement_0
|
||||
56 Identifier__AssignmentStatement_0 ::= . AssignmentStatement
|
||||
57 Identifier__AssignmentStatement_0 ::= . AssignmentStatement Identifier__AssignmentStatement_0
|
||||
key: Comma_Identifier__Comma_AssignmentStatement_0
|
||||
58 Comma_Identifier__Comma_AssignmentStatement_0 ::= .
|
||||
59 Comma_Identifier__Comma_AssignmentStatement_0 ::= . Comma Identifier Comma_Identifier__Comma_AssignmentStatement_0
|
||||
60 Comma_Identifier__Comma_AssignmentStatement_0 ::= . Comma AssignmentStatement Comma_Identifier__Comma_AssignmentStatement_0
|
||||
Reference in New Issue
Block a user