这是用户Alumik创建的项目,下面是原始的readme:
本仓库已停止维护。本项目已迁移至parse-tree项目继续进行维护。
PLDL 是编程语言描述语言的简称。
本项目在 PLDLParser 的基础上修改。
- Source file reader
- YAML config reader
- Regular expression engine
- Regular expression to NFA
- Finite-state machine
- State machine visualization
- Lex rules initialization
- Lexer core features
- Parse rules initialization
- Symbol and symbol pool
- Context-free grammar
- Parse table
- Production rules
- Parser core features
- Build parse tree
以正则表达式 (a|b)*abb 为例。
- _S->S (该产生式由文法增广自动产生,不必书写进配置文件)
- S->CbBA
- A->Aab
- A->ab
- B->C
- B->Db
- C->a
- D->a
nonTerminalSymbols:
? A? B? C? D? SterminalSymbols:
a: ab: bignoredSymbols:
startSymbol: Sproductions:
- S -> C b B A
- A -> A a b
- A -> a b
- B -> C
- B -> D b
- C -> a
- D -> a| ACTION | GOTO | |||||||
|---|---|---|---|---|---|---|---|---|
| a | b | $ | S | A | B | C | D | |
| 0 | s1 | 3 | 2 | |||||
| 1 | r7 | |||||||
| 2 | s4 | |||||||
| 3 | acc | |||||||
| 4 | s5 | 6 | 7 | 8 | ||||
| 5 | r7 | r8 | ||||||
| 6 | s10 | 9 | ||||||
| 7 | r5 | |||||||
| 8 | s11 | |||||||
| 9 | s12 | r2 | ||||||
| 10 | s13 | |||||||
| 11 | r6 | |||||||
| 12 | s14 | |||||||
| 13 | r4 | r4 | ||||||
| 14 | r3 | r3 | ||||||
输入串为 abababab 。




