-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathGRAMMAR.txt
More file actions
25 lines (25 loc) · 1.34 KB
/
GRAMMAR.txt
File metadata and controls
25 lines (25 loc) · 1.34 KB
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
// 开始 -> 标识符(关键字)|常量|分隔符|运算符
Start -> Identifier | Constant | Separator | Operator
//标识符(关键字):字母或者下划线开头
Identifier -> aI | bI | cI | dI | eI | fI | gI | hI | iI | jI | kI | lI | mI | nI | oI | pI | qI | rI | sI | tI | uI | vI | wI | xI | yI | zI | _I
I -> $ | aI | bI | cI | dI | eI | fI | gI | hI | iI | jI | kI | lI | mI | nI | oI | pI | qI | rI | sI | tI | uI | vI | wI | xI | yI | zI | _I | 0I | 1I | 2I | 3I | 4I | 5I | 6I | 7I | 8I | 9I
//常量:整数、小数、虚数、科学计数法
Constant -> A | B | C
//整数
A -> +A0 | -A0 | A0 | 0
A0 -> 1A1 | 2A1 | 3A1 | 4A1 | 5A1 | 6A1 | 7A1 | 8A1 | 9A1
A1 -> $ | 0A1 | 1A1 | 2A1 | 3A1 | 4A1 | 5A1 | 6A1 | 7A1 | 8A1 | 9A1
//小数
B -> 0B3 | 1B1 | 2B1 | 3B1 | 4B1 | 5B1 |6B1 | 7B1 | 8B1 | 9B1
B1 -> .B2 | 1B1 | 2B1 | 3B1 | 4B1 | 5B1 |6B1 | 7B1 | 8B1 | 9B1 | 0B1
B2 -> 0B2 | 1B2 | 2B2 | 3B2 | 4B2 | 5B2 |6B2 | 7B2 | 8B2 | 9B2 | $
B3 -> .B2
//字符串
C->"C1
C1 -> C2 | aC1 | bC1 | cC1 | dC1 | eC1 | fC1 | gC1 | hC1 | iC1 | jC1 | kC1 | lC1 | mC1 | nC1 | oC1 | pC1 | qC1 | rC1 | sC1 | tC1 | uC1 | vC1 | wC1 | xC1 | yC1 | zC1 | _C1 | 0C1 | 1C1 | 2C1 | 3C1 | 4C1 | 5C1 | 6C1 | 7C1 | 8C1 | 9C1
C2 -> "
//分隔符
Separator -> , | ; | ( | ) |{ | } | [ | ] | \t | \n | \0 | #
//运算符
Operator -> +O | -O | *O | /O |%O | =O | <O | >O
O -> $ | =