一键生成`Calc`文法解析器

Compiler of Calc

The C# source code of the compiler Calc is generated by bitzhuwei.GrammarFormat.

Grammar

// 8 VnRegulations:
Additive : Additive '+' Multiplicative // [0]
         | Additive '-' Multiplicative // [1]
         | Multiplicative ; // [2]
Multiplicative : Multiplicative '*' Primary // [3]
               | Multiplicative '/' Primary // [4]
               | Primary ; // [5]
Primary : '(' Additive ')' // [6]
        | 'number' ; // [7]
// 1 VtPatterns:
'number' : %%[0-9]+%% ; // [0]

Lexical Analyzer States

[0-9]
BeginToken 'number'
ExtendToken 'number'

Unsupported markdown: list

BeginToken '+'
ExtendToken '+'

Unsupported markdown: list

BeginToken '-'
ExtendToken '-'

Unsupported markdown: list

BeginToken ''
ExtendToken '
'

/
BeginToken '/'
ExtendToken '/'

(
BeginToken '('
ExtendToken '('

)
BeginToken ')'
ExtendToken ')'

[0-9]
ExtendToken 'number'

DFA0 wholeStart

DFA1 {1}

DFA2 {1}

DFA3 {1}

DFA4 {1}

DFA5 {1}

DFA6 {1}

DFA7 {1}

nullable

[0]: nullable( Additive ) = False
[1]: nullable( '+' ) = False
[2]: nullable( Multiplicative ) = False
[3]: nullable( '-' ) = False
[4]: nullable( '*' ) = False
[5]: nullable( Primary ) = False
[6]: nullable( '/' ) = False
[7]: nullable( '(' ) = False
[8]: nullable( ')' ) = False
[9]: nullable( 'number' ) = False
[10]: nullable(  ) = True

FIRST

[0]: FIRST( Additive ) = { '(' 'number' }
[1]: FIRST( Multiplicative ) = { '(' 'number' }
[2]: FIRST( Primary ) = { '(' 'number' }
[3]: FIRST( '+' ) = { '+' }
[4]: FIRST( '-' ) = { '-' }
[5]: FIRST( '*' ) = { '*' }
[6]: FIRST( '/' ) = { '/' }
[7]: FIRST( '(' ) = { '(' }
[8]: FIRST( ')' ) = { ')' }
[9]: FIRST( 'number' ) = { 'number' }
[10]: FIRST(  ) = { empty }
[11]: FIRST( Additive '+' Multiplicative ) = { '(' 'number' }
[12]: FIRST( Additive '-' Multiplicative ) = { '(' 'number' }
[13]: FIRST( Multiplicative '*' Primary ) = { '(' 'number' }
[14]: FIRST( Multiplicative '/' Primary ) = { '(' 'number' }
[15]: FIRST( '(' Additive ')' ) = { '(' }

FOLLOW

[0]: FOLLOW( Additive ) = { '+' '-' ')' }
[1]: FOLLOW( Multiplicative ) = { '+' '-' '*' '/' ')' }
[2]: FOLLOW( Primary ) = { '+' '-' '*' '/' ')' }

LL(1) Syntax Machine

状态 '+' '-' '*' '/' '(' ')' 'number'
Additive R[0] R[1] R[2] R[0] R[1] R[2]
Multiplicative R[3] R[4] R[5] R[3] R[4] R[5]
Primary R[6] R[7]

LR(0) Syntax Machine

状态 '+' '-' '*' '/' '(' ')' 'number' '¥' Additive Multiplicative Primary
0 S4 S5 G1 G2 G3
1 S6 S7 完成
2 R[2] R[2] S8 R[2] S9 R[2] R[2] R[2] R[2] R[2]
3 R[5] R[5] R[5] R[5] R[5] R[5] R[5] R[5]
4 S4 S5 G10 G2 G3
5 R[7] R[7] R[7] R[7] R[7] R[7] R[7] R[7]
6 S4 S5 G11 G3
7 S4 S5 G12 G3
8 S4 S5 G13
9 S4 S5 G14
10 S6 S7 S15
11 R[0] R[0] S8 R[0] S9 R[0] R[0] R[0] R[0] R[0]
12 R[1] R[1] S8 R[1] S9 R[1] R[1] R[1] R[1] R[1]
13 R[3] R[3] R[3] R[3] R[3] R[3] R[3] R[3]
14 R[4] R[4] R[4] R[4] R[4] R[4] R[4] R[4]
15 R[6] R[6] R[6] R[6] R[6] R[6] R[6] R[6]

Additive

Multiplicative

Primary

'('

'number'

'+'

'-'

'*'

'/'

Additive

Multiplicative

Primary

'('

'number'

Multiplicative

Primary

'('

'number'

Multiplicative

Primary

'('

'number'

Primary

'('

'number'

Primary

'('

'number'

')'

'+'

'-'

'*'

'/'

'*'

'/'

'¥'

'*' '/' '+' '-' '(' ')' 'number' '¥'
R[2]= Additive : Multiplicative ;

'*' '/' '+' '-' '(' ')' 'number' '¥'
R[0]= Additive : Additive '+' Multiplicative ;

'*' '/' '+' '-' '(' ')' 'number' '¥'
R[1]= Additive : Additive '-' Multiplicative ;

'+' '-' '*' '/' '(' ')' 'number' '¥'
R[5]= Multiplicative : Primary ;

'+' '-' '*' '/' '(' ')' 'number' '¥'
R[7]= Primary : 'number' ;

'+' '-' '' '/' '(' ')' 'number' '¥'
R[3]= Multiplicative : Multiplicative '
' Primary ;

'+' '-' '*' '/' '(' ')' 'number' '¥'
R[4]= Multiplicative : Multiplicative '/' Primary ;

'+' '-' '*' '/' '(' ')' 'number' '¥'
R[6]= Primary : '(' Additive ')' ;

LR(1) syntax states

syntaxState0
[-1] FinalValue> : ⏳ Additive ;
[0] Additive : ⏳ Additive '+' Multiplicative ;
[1] Additive : ⏳ Additive '-' Multiplicative ;
[2] Additive : ⏳ Multiplicative ;
[3] Multiplicative : ⏳ Multiplicative '*' Primary ;
[4] Multiplicative : ⏳ Multiplicative '/' Primary ;
[5] Multiplicative : ⏳ Primary ;
[6] Primary : ⏳ '(' Additive ')' ;
[7] Primary : ⏳ 'number' ;

syntaxState1
[-1] FinalValue> : Additive ⏳ ;
[0] Additive : Additive ⏳ '+' Multiplicative ;
[1] Additive : Additive ⏳ '-' Multiplicative ;

syntaxState2
[2] Additive : Multiplicative ⏳ ;
[3] Multiplicative : Multiplicative ⏳ '*' Primary ;
[4] Multiplicative : Multiplicative ⏳ '/' Primary ;

syntaxState3
[5] Multiplicative : Primary ⏳ ;

syntaxState4
[6] Primary : '(' ⏳ Additive ')' ;
[0] Additive : ⏳ Additive '+' Multiplicative ;
[1] Additive : ⏳ Additive '-' Multiplicative ;
[2] Additive : ⏳ Multiplicative ;
[3] Multiplicative : ⏳ Multiplicative '*' Primary ;
[4] Multiplicative : ⏳ Multiplicative '/' Primary ;
[5] Multiplicative : ⏳ Primary ;
[6] Primary : ⏳ '(' Additive ')' ;
[7] Primary : ⏳ 'number' ;

syntaxState5
[7] Primary : 'number' ⏳ ;

syntaxState6
[0] Additive : Additive '+' ⏳ Multiplicative ;
[3] Multiplicative : ⏳ Multiplicative '*' Primary ;
[4] Multiplicative : ⏳ Multiplicative '/' Primary ;
[5] Multiplicative : ⏳ Primary ;
[6] Primary : ⏳ '(' Additive ')' ;
[7] Primary : ⏳ 'number' ;

syntaxState7
[1] Additive : Additive '-' ⏳ Multiplicative ;
[3] Multiplicative : ⏳ Multiplicative '*' Primary ;
[4] Multiplicative : ⏳ Multiplicative '/' Primary ;
[5] Multiplicative : ⏳ Primary ;
[6] Primary : ⏳ '(' Additive ')' ;
[7] Primary : ⏳ 'number' ;

syntaxState8
[3] Multiplicative : Multiplicative '*' ⏳ Primary ;
[6] Primary : ⏳ '(' Additive ')' ;
[7] Primary : ⏳ 'number' ;

syntaxState9
[4] Multiplicative : Multiplicative '/' ⏳ Primary ;
[6] Primary : ⏳ '(' Additive ')' ;
[7] Primary : ⏳ 'number' ;

syntaxState10
[6] Primary : '(' Additive ⏳ ')' ;
[0] Additive : Additive ⏳ '+' Multiplicative ;
[1] Additive : Additive ⏳ '-' Multiplicative ;

syntaxState11
[0] Additive : Additive '+' Multiplicative ⏳ ;
[3] Multiplicative : Multiplicative ⏳ '*' Primary ;
[4] Multiplicative : Multiplicative ⏳ '/' Primary ;

syntaxState12
[1] Additive : Additive '-' Multiplicative ⏳ ;
[3] Multiplicative : Multiplicative ⏳ '*' Primary ;
[4] Multiplicative : Multiplicative ⏳ '/' Primary ;

syntaxState13
[3] Multiplicative : Multiplicative '*' Primary ⏳ ;

syntaxState14
[4] Multiplicative : Multiplicative '/' Primary ⏳ ;

syntaxState15
[6] Primary : '(' Additive ')' ⏳ ;

SLR(1) Syntax Machine

状态 '+' '-' '*' '/' '(' ')' 'number' '¥' Additive Multiplicative Primary
0 S4 S5 G1 G2 G3
1 S6 S7 完成
2 R[2] R[2] S8 S9 R[2] R[2]
3 R[5] R[5] R[5] R[5] R[5]
4 S4 S5 G10 G2 G3
5 R[7] R[7] R[7] R[7] R[7]
6 S4 S5 G11 G3
7 S4 S5 G12 G3
8 S4 S5 G13
9 S4 S5 G14
10 S6 S7 S15
11 R[0] R[0] S8 S9 R[0] R[0]
12 R[1] R[1] S8 S9 R[1] R[1]
13 R[3] R[3] R[3] R[3] R[3]
14 R[4] R[4] R[4] R[4] R[4]
15 R[6] R[6] R[6] R[6] R[6]

Additive

Multiplicative

Primary

'('

'number'

'+'

'-'

'*'

'/'

Additive

Multiplicative

Primary

'('

'number'

Multiplicative

Primary

'('

'number'

Multiplicative

Primary

'('

'number'

Primary

'('

'number'

Primary

'('

'number'

')'

'+'

'-'

'*'

'/'

'*'

'/'

'¥'

'+' '-' ')' '¥'
R[2]= Additive : Multiplicative ;

'+' '-' '*' '/' ')'
R[5]= Multiplicative : Primary ;

'+' '-' '*' '/' ')'
R[7]= Primary : 'number' ;

'+' '-' ')' '¥'
R[0]= Additive : Additive '+' Multiplicative ;

'+' '-' ')' '¥'
R[1]= Additive : Additive '-' Multiplicative ;

'+' '-' '' '/' ')'
R[3]= Multiplicative : Multiplicative '
' Primary ;

'+' '-' '*' '/' ')'
R[4]= Multiplicative : Multiplicative '/' Primary ;

'+' '-' '*' '/' ')'
R[6]= Primary : '(' Additive ')' ;

LR(1) syntax states

syntaxState0
[-1] FinalValue> : ⏳ Additive ;
[0] Additive : ⏳ Additive '+' Multiplicative ;
[1] Additive : ⏳ Additive '-' Multiplicative ;
[2] Additive : ⏳ Multiplicative ;
[3] Multiplicative : ⏳ Multiplicative '*' Primary ;
[4] Multiplicative : ⏳ Multiplicative '/' Primary ;
[5] Multiplicative : ⏳ Primary ;
[6] Primary : ⏳ '(' Additive ')' ;
[7] Primary : ⏳ 'number' ;

syntaxState1
[-1] FinalValue> : Additive ⏳ ;
[0] Additive : Additive ⏳ '+' Multiplicative ;
[1] Additive : Additive ⏳ '-' Multiplicative ;

syntaxState2
[2] Additive : Multiplicative ⏳ ;
[3] Multiplicative : Multiplicative ⏳ '*' Primary ;
[4] Multiplicative : Multiplicative ⏳ '/' Primary ;

syntaxState3
[5] Multiplicative : Primary ⏳ ;

syntaxState4
[6] Primary : '(' ⏳ Additive ')' ;
[0] Additive : ⏳ Additive '+' Multiplicative ;
[1] Additive : ⏳ Additive '-' Multiplicative ;
[2] Additive : ⏳ Multiplicative ;
[3] Multiplicative : ⏳ Multiplicative '*' Primary ;
[4] Multiplicative : ⏳ Multiplicative '/' Primary ;
[5] Multiplicative : ⏳ Primary ;
[6] Primary : ⏳ '(' Additive ')' ;
[7] Primary : ⏳ 'number' ;

syntaxState5
[7] Primary : 'number' ⏳ ;

syntaxState6
[0] Additive : Additive '+' ⏳ Multiplicative ;
[3] Multiplicative : ⏳ Multiplicative '*' Primary ;
[4] Multiplicative : ⏳ Multiplicative '/' Primary ;
[5] Multiplicative : ⏳ Primary ;
[6] Primary : ⏳ '(' Additive ')' ;
[7] Primary : ⏳ 'number' ;

syntaxState7
[1] Additive : Additive '-' ⏳ Multiplicative ;
[3] Multiplicative : ⏳ Multiplicative '*' Primary ;
[4] Multiplicative : ⏳ Multiplicative '/' Primary ;
[5] Multiplicative : ⏳ Primary ;
[6] Primary : ⏳ '(' Additive ')' ;
[7] Primary : ⏳ 'number' ;

syntaxState8
[3] Multiplicative : Multiplicative '*' ⏳ Primary ;
[6] Primary : ⏳ '(' Additive ')' ;
[7] Primary : ⏳ 'number' ;

syntaxState9
[4] Multiplicative : Multiplicative '/' ⏳ Primary ;
[6] Primary : ⏳ '(' Additive ')' ;
[7] Primary : ⏳ 'number' ;

syntaxState10
[6] Primary : '(' Additive ⏳ ')' ;
[0] Additive : Additive ⏳ '+' Multiplicative ;
[1] Additive : Additive ⏳ '-' Multiplicative ;

syntaxState11
[0] Additive : Additive '+' Multiplicative ⏳ ;
[3] Multiplicative : Multiplicative ⏳ '*' Primary ;
[4] Multiplicative : Multiplicative ⏳ '/' Primary ;

syntaxState12
[1] Additive : Additive '-' Multiplicative ⏳ ;
[3] Multiplicative : Multiplicative ⏳ '*' Primary ;
[4] Multiplicative : Multiplicative ⏳ '/' Primary ;

syntaxState13
[3] Multiplicative : Multiplicative '*' Primary ⏳ ;

syntaxState14
[4] Multiplicative : Multiplicative '/' Primary ⏳ ;

syntaxState15
[6] Primary : '(' Additive ')' ⏳ ;

LALR(1) Syntax Machine

状态 '+' '-' '*' '/' '(' ')' 'number' '¥' Additive Multiplicative Primary
0 S4 S5 G1 G2 G3
1 S6 S7 完成
2 R[2] R[2] S8 S9 R[2] R[2]
3 R[5] R[5] R[5] R[5] R[5] R[5]
4 S4 S5 G10 G2 G3
5 R[7] R[7] R[7] R[7] R[7] R[7]
6 S4 S5 G11 G3
7 S4 S5 G12 G3
8 S4 S5 G13
9 S4 S5 G14
10 S6 S7 S15
11 R[0] R[0] S8 S9 R[0] R[0]
12 R[1] R[1] S8 S9 R[1] R[1]
13 R[3] R[3] R[3] R[3] R[3] R[3]
14 R[4] R[4] R[4] R[4] R[4] R[4]
15 R[6] R[6] R[6] R[6] R[6] R[6]

Additive

Multiplicative

Primary

'('

'number'

'+'

'-'

'*'

'/'

Additive

Multiplicative

Primary

'('

'number'

Multiplicative

Primary

'('

'number'

Multiplicative

Primary

'('

'number'

Primary

'('

'number'

Primary

'('

'number'

')'

'+'

'-'

'*'

'/'

'*'

'/'

'¥'

'¥' '+' '-' ')'
R[2]= Additive : Multiplicative ;

'¥' '+' '-' '*' '/' ')'
R[5]= Multiplicative : Primary ;

'¥' '+' '-' '*' '/' ')'
R[7]= Primary : 'number' ;

'¥' '+' '-' ')'
R[0]= Additive : Additive '+' Multiplicative ;

'¥' '+' '-' ')'
R[1]= Additive : Additive '-' Multiplicative ;

'¥' '+' '-' '' '/' ')'
R[3]= Multiplicative : Multiplicative '
' Primary ;

'¥' '+' '-' '*' '/' ')'
R[4]= Multiplicative : Multiplicative '/' Primary ;

'¥' '+' '-' '*' '/' ')'
R[6]= Primary : '(' Additive ')' ;

LR(1) syntax states

syntaxState0
[-1] FinalValue> : ⏳ Additive ; '¥'
[0] Additive : ⏳ Additive '+' Multiplicative ; '¥' '+' '-'
[1] Additive : ⏳ Additive '-' Multiplicative ; '¥' '+' '-'
[2] Additive : ⏳ Multiplicative ; '¥' '+' '-'
[3] Multiplicative : ⏳ Multiplicative '' Primary ; '¥' '+' '-' '' '/'
[4] Multiplicative : ⏳ Multiplicative '/' Primary ; '¥' '+' '-' '' '/'
[5] Multiplicative : ⏳ Primary ; '¥' '+' '-' '
' '/'
[6] Primary : ⏳ '(' Additive ')' ; '¥' '+' '-' '' '/'
[7] Primary : ⏳ 'number' ; '¥' '+' '-' '
' '/'

syntaxState1
[-1] FinalValue> : Additive ⏳ ; '¥'
[0] Additive : Additive ⏳ '+' Multiplicative ; '¥' '+' '-'
[1] Additive : Additive ⏳ '-' Multiplicative ; '¥' '+' '-'

syntaxState2
[2] Additive : Multiplicative ⏳ ; '¥' '+' '-' ')'
[3] Multiplicative : Multiplicative ⏳ '' Primary ; '¥' '+' '-' '' '/' ')'
[4] Multiplicative : Multiplicative ⏳ '/' Primary ; '¥' '+' '-' '*' '/' ')'

syntaxState3
[5] Multiplicative : Primary ⏳ ; '¥' '+' '-' '*' '/' ')'

syntaxState4
[6] Primary : '(' ⏳ Additive ')' ; '¥' '+' '-' '' '/' ')'
[0] Additive : ⏳ Additive '+' Multiplicative ; ')' '+' '-'
[1] Additive : ⏳ Additive '-' Multiplicative ; ')' '+' '-'
[2] Additive : ⏳ Multiplicative ; ')' '+' '-'
[3] Multiplicative : ⏳ Multiplicative '
' Primary ; ')' '+' '-' '' '/'
[4] Multiplicative : ⏳ Multiplicative '/' Primary ; ')' '+' '-' '
' '/'
[5] Multiplicative : ⏳ Primary ; ')' '+' '-' '' '/'
[6] Primary : ⏳ '(' Additive ')' ; ')' '+' '-' '
' '/'
[7] Primary : ⏳ 'number' ; ')' '+' '-' '*' '/'

syntaxState5
[7] Primary : 'number' ⏳ ; '¥' '+' '-' '*' '/' ')'

syntaxState6
[0] Additive : Additive '+' ⏳ Multiplicative ; '¥' '+' '-' ')'
[3] Multiplicative : ⏳ Multiplicative '' Primary ; '¥' '+' '-' '' '/' ')'
[4] Multiplicative : ⏳ Multiplicative '/' Primary ; '¥' '+' '-' '' '/' ')'
[5] Multiplicative : ⏳ Primary ; '¥' '+' '-' '
' '/' ')'
[6] Primary : ⏳ '(' Additive ')' ; '¥' '+' '-' '' '/' ')'
[7] Primary : ⏳ 'number' ; '¥' '+' '-' '
' '/' ')'

syntaxState7
[1] Additive : Additive '-' ⏳ Multiplicative ; '¥' '+' '-' ')'
[3] Multiplicative : ⏳ Multiplicative '' Primary ; '¥' '+' '-' '' '/' ')'
[4] Multiplicative : ⏳ Multiplicative '/' Primary ; '¥' '+' '-' '' '/' ')'
[5] Multiplicative : ⏳ Primary ; '¥' '+' '-' '
' '/' ')'
[6] Primary : ⏳ '(' Additive ')' ; '¥' '+' '-' '' '/' ')'
[7] Primary : ⏳ 'number' ; '¥' '+' '-' '
' '/' ')'

syntaxState8
[3] Multiplicative : Multiplicative '' ⏳ Primary ; '¥' '+' '-' '' '/' ')'
[6] Primary : ⏳ '(' Additive ')' ; '¥' '+' '-' '' '/' ')'
[7] Primary : ⏳ 'number' ; '¥' '+' '-' '
' '/' ')'

syntaxState9
[4] Multiplicative : Multiplicative '/' ⏳ Primary ; '¥' '+' '-' '' '/' ')'
[6] Primary : ⏳ '(' Additive ')' ; '¥' '+' '-' '
' '/' ')'
[7] Primary : ⏳ 'number' ; '¥' '+' '-' '*' '/' ')'

syntaxState10
[6] Primary : '(' Additive ⏳ ')' ; '¥' '+' '-' '*' '/' ')'
[0] Additive : Additive ⏳ '+' Multiplicative ; ')' '+' '-'
[1] Additive : Additive ⏳ '-' Multiplicative ; ')' '+' '-'

syntaxState11
[0] Additive : Additive '+' Multiplicative ⏳ ; '¥' '+' '-' ')'
[3] Multiplicative : Multiplicative ⏳ '' Primary ; '¥' '+' '-' '' '/' ')'
[4] Multiplicative : Multiplicative ⏳ '/' Primary ; '¥' '+' '-' '*' '/' ')'

syntaxState12
[1] Additive : Additive '-' Multiplicative ⏳ ; '¥' '+' '-' ')'
[3] Multiplicative : Multiplicative ⏳ '' Primary ; '¥' '+' '-' '' '/' ')'
[4] Multiplicative : Multiplicative ⏳ '/' Primary ; '¥' '+' '-' '*' '/' ')'

syntaxState13
[3] Multiplicative : Multiplicative '' Primary ⏳ ; '¥' '+' '-' '' '/' ')'

syntaxState14
[4] Multiplicative : Multiplicative '/' Primary ⏳ ; '¥' '+' '-' '*' '/' ')'

syntaxState15
[6] Primary : '(' Additive ')' ⏳ ; '¥' '+' '-' '*' '/' ')'

LR(1) Syntax Machine

状态 '+' '-' '*' '/' '(' ')' 'number' '¥' Additive Multiplicative Primary
0 S4 S5 G1 G2 G3
1 S6 S7 完成
2 R[2] R[2] S8 S9 R[2]
3 R[5] R[5] R[5] R[5] R[5]
4 S13 S14 G10 G11 G12
5 R[7] R[7] R[7] R[7] R[7]
6 S4 S5 G15 G3
7 S4 S5 G16 G3
8 S4 S5 G17
9 S4 S5 G18
10 S20 S21 S19
11 R[2] R[2] S22 S23 R[2]
12 R[5] R[5] R[5] R[5] R[5]
13 S13 S14 G24 G11 G12
14 R[7] R[7] R[7] R[7] R[7]
15 R[0] R[0] S8 S9 R[0]
16 R[1] R[1] S8 S9 R[1]
17 R[3] R[3] R[3] R[3] R[3]
18 R[4] R[4] R[4] R[4] R[4]
19 R[6] R[6] R[6] R[6] R[6]
20 S13 S14 G25 G12
21 S13 S14 G26 G12
22 S13 S14 G27
23 S13 S14 G28
24 S20 S21 S29
25 R[0] R[0] S22 S23 R[0]
26 R[1] R[1] S22 S23 R[1]
27 R[3] R[3] R[3] R[3] R[3]
28 R[4] R[4] R[4] R[4] R[4]
29 R[6] R[6] R[6] R[6] R[6]

Additive

Multiplicative

Primary

'('

'number'

'+'

'-'

'*'

'/'

Additive

Multiplicative

Primary

'('

'number'

Multiplicative

Primary

'('

'number'

Multiplicative

Primary

'('

'number'

Primary

'('

'number'

Primary

'('

'number'

')'

'+'

'-'

'*'

'/'

Additive

Multiplicative

Primary

'('

'number'

'*'

'/'

'*'

'/'

Multiplicative

Primary

'('

'number'

Multiplicative

Primary

'('

'number'

Primary

'('

'number'

Primary

'('

'number'

')'

'+'

'-'

'*'

'/'

'*'

'/'

'¥'

'¥' '+' '-'
R[2]= Additive : Multiplicative ;

'¥' '+' '-' '*' '/'
R[5]= Multiplicative : Primary ;

'¥' '+' '-' '*' '/'
R[7]= Primary : 'number' ;

')' '+' '-'
R[2]= Additive : Multiplicative ;

')' '+' '-' '*' '/'
R[5]= Multiplicative : Primary ;

')' '+' '-' '*' '/'
R[7]= Primary : 'number' ;

'¥' '+' '-'
R[0]= Additive : Additive '+' Multiplicative ;

'¥' '+' '-'
R[1]= Additive : Additive '-' Multiplicative ;

'¥' '+' '-' '' '/'
R[3]= Multiplicative : Multiplicative '
' Primary ;

'¥' '+' '-' '*' '/'
R[4]= Multiplicative : Multiplicative '/' Primary ;

'¥' '+' '-' '*' '/'
R[6]= Primary : '(' Additive ')' ;

')' '+' '-'
R[0]= Additive : Additive '+' Multiplicative ;

')' '+' '-'
R[1]= Additive : Additive '-' Multiplicative ;

')' '+' '-' '' '/'
R[3]= Multiplicative : Multiplicative '
' Primary ;

')' '+' '-' '*' '/'
R[4]= Multiplicative : Multiplicative '/' Primary ;

')' '+' '-' '*' '/'
R[6]= Primary : '(' Additive ')' ;

LR(1) syntax states

syntaxState0
[-1] FinalValue> : ⏳ Additive ; '¥'
[0] Additive : ⏳ Additive '+' Multiplicative ; '¥' '+' '-'
[1] Additive : ⏳ Additive '-' Multiplicative ; '¥' '+' '-'
[2] Additive : ⏳ Multiplicative ; '¥' '+' '-'
[3] Multiplicative : ⏳ Multiplicative '' Primary ; '¥' '+' '-' '' '/'
[4] Multiplicative : ⏳ Multiplicative '/' Primary ; '¥' '+' '-' '' '/'
[5] Multiplicative : ⏳ Primary ; '¥' '+' '-' '
' '/'
[6] Primary : ⏳ '(' Additive ')' ; '¥' '+' '-' '' '/'
[7] Primary : ⏳ 'number' ; '¥' '+' '-' '
' '/'

syntaxState1
[-1] FinalValue> : Additive ⏳ ; '¥'
[0] Additive : Additive ⏳ '+' Multiplicative ; '¥' '+' '-'
[1] Additive : Additive ⏳ '-' Multiplicative ; '¥' '+' '-'

syntaxState2
[2] Additive : Multiplicative ⏳ ; '¥' '+' '-'
[3] Multiplicative : Multiplicative ⏳ '' Primary ; '¥' '+' '-' '' '/'
[4] Multiplicative : Multiplicative ⏳ '/' Primary ; '¥' '+' '-' '*' '/'

syntaxState3
[5] Multiplicative : Primary ⏳ ; '¥' '+' '-' '*' '/'

syntaxState4
[6] Primary : '(' ⏳ Additive ')' ; '¥' '+' '-' '' '/'
[0] Additive : ⏳ Additive '+' Multiplicative ; ')' '+' '-'
[1] Additive : ⏳ Additive '-' Multiplicative ; ')' '+' '-'
[2] Additive : ⏳ Multiplicative ; ')' '+' '-'
[3] Multiplicative : ⏳ Multiplicative '
' Primary ; ')' '+' '-' '' '/'
[4] Multiplicative : ⏳ Multiplicative '/' Primary ; ')' '+' '-' '
' '/'
[5] Multiplicative : ⏳ Primary ; ')' '+' '-' '' '/'
[6] Primary : ⏳ '(' Additive ')' ; ')' '+' '-' '
' '/'
[7] Primary : ⏳ 'number' ; ')' '+' '-' '*' '/'

syntaxState5
[7] Primary : 'number' ⏳ ; '¥' '+' '-' '*' '/'

syntaxState6
[0] Additive : Additive '+' ⏳ Multiplicative ; '¥' '+' '-'
[3] Multiplicative : ⏳ Multiplicative '' Primary ; '¥' '+' '-' '' '/'
[4] Multiplicative : ⏳ Multiplicative '/' Primary ; '¥' '+' '-' '' '/'
[5] Multiplicative : ⏳ Primary ; '¥' '+' '-' '
' '/'
[6] Primary : ⏳ '(' Additive ')' ; '¥' '+' '-' '' '/'
[7] Primary : ⏳ 'number' ; '¥' '+' '-' '
' '/'

syntaxState7
[1] Additive : Additive '-' ⏳ Multiplicative ; '¥' '+' '-'
[3] Multiplicative : ⏳ Multiplicative '' Primary ; '¥' '+' '-' '' '/'
[4] Multiplicative : ⏳ Multiplicative '/' Primary ; '¥' '+' '-' '' '/'
[5] Multiplicative : ⏳ Primary ; '¥' '+' '-' '
' '/'
[6] Primary : ⏳ '(' Additive ')' ; '¥' '+' '-' '' '/'
[7] Primary : ⏳ 'number' ; '¥' '+' '-' '
' '/'

syntaxState8
[3] Multiplicative : Multiplicative '' ⏳ Primary ; '¥' '+' '-' '' '/'
[6] Primary : ⏳ '(' Additive ')' ; '¥' '+' '-' '' '/'
[7] Primary : ⏳ 'number' ; '¥' '+' '-' '
' '/'

syntaxState9
[4] Multiplicative : Multiplicative '/' ⏳ Primary ; '¥' '+' '-' '' '/'
[6] Primary : ⏳ '(' Additive ')' ; '¥' '+' '-' '
' '/'
[7] Primary : ⏳ 'number' ; '¥' '+' '-' '*' '/'

syntaxState10
[6] Primary : '(' Additive ⏳ ')' ; '¥' '+' '-' '*' '/'
[0] Additive : Additive ⏳ '+' Multiplicative ; ')' '+' '-'
[1] Additive : Additive ⏳ '-' Multiplicative ; ')' '+' '-'

syntaxState11
[2] Additive : Multiplicative ⏳ ; ')' '+' '-'
[3] Multiplicative : Multiplicative ⏳ '' Primary ; ')' '+' '-' '' '/'
[4] Multiplicative : Multiplicative ⏳ '/' Primary ; ')' '+' '-' '*' '/'

syntaxState12
[5] Multiplicative : Primary ⏳ ; ')' '+' '-' '*' '/'

syntaxState13
[6] Primary : '(' ⏳ Additive ')' ; ')' '+' '-' '' '/'
[0] Additive : ⏳ Additive '+' Multiplicative ; ')' '+' '-'
[1] Additive : ⏳ Additive '-' Multiplicative ; ')' '+' '-'
[2] Additive : ⏳ Multiplicative ; ')' '+' '-'
[3] Multiplicative : ⏳ Multiplicative '
' Primary ; ')' '+' '-' '' '/'
[4] Multiplicative : ⏳ Multiplicative '/' Primary ; ')' '+' '-' '
' '/'
[5] Multiplicative : ⏳ Primary ; ')' '+' '-' '' '/'
[6] Primary : ⏳ '(' Additive ')' ; ')' '+' '-' '
' '/'
[7] Primary : ⏳ 'number' ; ')' '+' '-' '*' '/'

syntaxState14
[7] Primary : 'number' ⏳ ; ')' '+' '-' '*' '/'

syntaxState15
[0] Additive : Additive '+' Multiplicative ⏳ ; '¥' '+' '-'
[3] Multiplicative : Multiplicative ⏳ '' Primary ; '¥' '+' '-' '' '/'
[4] Multiplicative : Multiplicative ⏳ '/' Primary ; '¥' '+' '-' '*' '/'

syntaxState16
[1] Additive : Additive '-' Multiplicative ⏳ ; '¥' '+' '-'
[3] Multiplicative : Multiplicative ⏳ '' Primary ; '¥' '+' '-' '' '/'
[4] Multiplicative : Multiplicative ⏳ '/' Primary ; '¥' '+' '-' '*' '/'

syntaxState17
[3] Multiplicative : Multiplicative '' Primary ⏳ ; '¥' '+' '-' '' '/'

syntaxState18
[4] Multiplicative : Multiplicative '/' Primary ⏳ ; '¥' '+' '-' '*' '/'

syntaxState19
[6] Primary : '(' Additive ')' ⏳ ; '¥' '+' '-' '*' '/'

syntaxState20
[0] Additive : Additive '+' ⏳ Multiplicative ; ')' '+' '-'
[3] Multiplicative : ⏳ Multiplicative '' Primary ; ')' '+' '-' '' '/'
[4] Multiplicative : ⏳ Multiplicative '/' Primary ; ')' '+' '-' '' '/'
[5] Multiplicative : ⏳ Primary ; ')' '+' '-' '
' '/'
[6] Primary : ⏳ '(' Additive ')' ; ')' '+' '-' '' '/'
[7] Primary : ⏳ 'number' ; ')' '+' '-' '
' '/'

syntaxState21
[1] Additive : Additive '-' ⏳ Multiplicative ; ')' '+' '-'
[3] Multiplicative : ⏳ Multiplicative '' Primary ; ')' '+' '-' '' '/'
[4] Multiplicative : ⏳ Multiplicative '/' Primary ; ')' '+' '-' '' '/'
[5] Multiplicative : ⏳ Primary ; ')' '+' '-' '
' '/'
[6] Primary : ⏳ '(' Additive ')' ; ')' '+' '-' '' '/'
[7] Primary : ⏳ 'number' ; ')' '+' '-' '
' '/'

syntaxState22
[3] Multiplicative : Multiplicative '' ⏳ Primary ; ')' '+' '-' '' '/'
[6] Primary : ⏳ '(' Additive ')' ; ')' '+' '-' '' '/'
[7] Primary : ⏳ 'number' ; ')' '+' '-' '
' '/'

syntaxState23
[4] Multiplicative : Multiplicative '/' ⏳ Primary ; ')' '+' '-' '' '/'
[6] Primary : ⏳ '(' Additive ')' ; ')' '+' '-' '
' '/'
[7] Primary : ⏳ 'number' ; ')' '+' '-' '*' '/'

syntaxState24
[6] Primary : '(' Additive ⏳ ')' ; ')' '+' '-' '*' '/'
[0] Additive : Additive ⏳ '+' Multiplicative ; ')' '+' '-'
[1] Additive : Additive ⏳ '-' Multiplicative ; ')' '+' '-'

syntaxState25
[0] Additive : Additive '+' Multiplicative ⏳ ; ')' '+' '-'
[3] Multiplicative : Multiplicative ⏳ '' Primary ; ')' '+' '-' '' '/'
[4] Multiplicative : Multiplicative ⏳ '/' Primary ; ')' '+' '-' '*' '/'

syntaxState26
[1] Additive : Additive '-' Multiplicative ⏳ ; ')' '+' '-'
[3] Multiplicative : Multiplicative ⏳ '' Primary ; ')' '+' '-' '' '/'
[4] Multiplicative : Multiplicative ⏳ '/' Primary ; ')' '+' '-' '*' '/'

syntaxState27
[3] Multiplicative : Multiplicative '' Primary ⏳ ; ')' '+' '-' '' '/'

syntaxState28
[4] Multiplicative : Multiplicative '/' Primary ⏳ ; ')' '+' '-' '*' '/'

syntaxState29
[6] Primary : '(' Additive ')' ⏳ ; ')' '+' '-' '*' '/'

End

posted @   BIT祝威  阅读(79)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
canvas start.

canvas end.



点击右上角即可分享
微信分享提示