diff --git a/version0.3/ebnf.cpp b/version0.3/ebnf.cpp index 963b387..b865104 100644 --- a/version0.3/ebnf.cpp +++ b/version0.3/ebnf.cpp @@ -1,127 +1,76 @@ /* <>术语符号 -[]最多出现一次 -{}可以出现任意次,包括0次 -()分组 |并列选项,只能选一个 */ - ::= - ::= - ::= - ::= - ::= - ::= - ::= - ::= | - ::= [<(> { <,> } <)>] <{> { <;> } <}> - ::= || - ::= <[> { <,> |||| } <]> - ::= <{> { <:> |||| } <}> - ::= <{> { <:> ||||| } <}> - - ::= <=> || <;> - ::= <=> <;> - - ::= <=> || <;> - ::= <=> || <;> - ::= <[> <]> <=> || <;> - ::= <[> <]> <=> || <;> - - ::= <(> { <,> |||| } <)> <;> - ::= <(> <,> <)> <;> - ::= <(> <,> <,> <)> <;> - ::= <(> <)> <;> - ::= <(> <,> <(> <,> <)> ( <-> )|( <(> <,> <)>) <)> <;> - ::= <(> <,> <)> <;> - ::= <(> <,> <)> <;> - ::= <(> <)> <;> - - ::= [ ] <(> <)> ( <;>)|(<{> { <;> } <}>) - { ( )| }|[ ] <(> <)> ( <;>)|(<{> { <;> } <}>) - ::= <(> <=> <;> <;> <=> <+> <)> -<{> - { <;> } -<}> - ::= <(> <)> -<{> - { <;> } -<}> - ::= | <(> <,> <)> -<{> - { <;> } -<}> - - ::= [<(> { } <)>] -<{> - { <;> } -<}> - ::= <(> { ({<,> ||||})|({<,> <:> ||||}) } <)> - ::= [<(> { } <)>] -<{> - { <(> <(> <)> <==> <)> ([<{> { <;>} <}>])|( <;>) } - <(> <)> <;> -<}> - ::= [<(> { } <)>] -<{> - { <;> } - [<(> {<,> } <)>] - <{> - { <;> } - <}> -<}> - - ::= <[> <]>|[ <.> | ] - ::= <.> | - ::= <(> { <,> ||| } <)> <;> - - ::= <(> <)> <;> - - ::= <(> { <,> [<[> | <]>] } <)> <=> <(> { |||| } <)> <;> - ::= <(> { <,> [<[> | <]>] } <)> <=> <(> { |||| } <)> <;> - - ::= <(> { <,> [<[> | <]>] } <)> <=> <(> { <,> [<[> | <]>] } <)> <;> - ::= <(> { <,> [<[> | <]>] } <)> <=> <;> - ::= <=> <[> { <,> }|( <:> [ ])| <]> <;> - - - nasal-- - ::= - ::= - ::= - ::= - ::= - ::= | - ::= <(> {} <)> <;> - ::= <(> {} <)> - ::= <=> ||||| <;> - ::= <=> ||||| <;> - ::= <=> <(> {} <)> <{> { <;>} <}> - ::= <(> <=> <;> <;> <=> <+> <)> -<{> - { <;> } -<}> - ::= <(> <)> -<{> - { <;> } -<}> - ::= [ ] <(> <)> ( <;>)|(<{> { <;> } <}>) - { ( )| }|[ ] <(> <)> ( <;>)|(<{> { <;> } <}>) - +//basic elements ::= IDENTIFIER ::= NUMBER ::= STRING - ::= <[> <]> - ::= (||||||| <,>)|(|||||||) - ::= <[> <]> - ::= <[> <]> - ::= ( <:> ||||||| <,>)|( <:> |||||||) - ::= <{> <}> - ::= ( <,>)| - ::= <(> <)> <{> <}> - ::= <(> <)> - ::= ||||| <;> +//scalar + ::= || + ::= ||||| + ::= <,> + ::= <,> - ::= <=> |||||||| <;> - ::= <=> |||||||| <;> +//array + ::= <[> <]> + ::= <[> | <]> + +//hash + ::= <[> <]> + ::= <:> + ::= <,> + ::= <,> + ::= <{> | <}> + +//function + ::= + ::= + ::= <(> | <)> <{> | <}> + ::= <(> | <)> + +//definition & assignment + ::= <=> | <;> + ::= <=> <;> + +//loop + ::= | <;> | <;> | + ::= <(> <)> |<{> | <}> + ::= <(> | <)> |<{> | <}> + +//if else + ::= || + ::= <==>|<>>|<<>|<<=>|<>=>|| + ::= + ::= + ::= <(> <)> <(> <)> + ::= <(> <)> <(> <)> + ::= <(> <)> <(> <)> + ::= <(> <)> + ::= <(> <)> +//(e==1) && (e==2) +//((e==1) && (e==2)) && (e==3) +//(e==1) && ((e==2) && (e==3)) +//(e==1) && (e==2) && (e==3) && ((e==4) && (e==5)) +<_if> ::= <(> | <)> +<_if> ::= <(> | <)> <{> | <}> +<_else> ::= +<_else> ::= <{> | <}> + ::= <(> | <)> + ::= <(> | <)> <{> | <}> + ::= + ::= + ::= <_if> + ::= <_if> <_else> + ::= <_if> + ::= <_if> + ::= <_if> <_else> + ::= <_if> <_else> + +//statement + ::= + ::= ||||| <;> + ::= + ::=