Starting out with minimal BNF
Just to test this idea, I'm going to start out with this simplified BNF of just literals
This commit is contained in:
parent
3bfd251a68
commit
2431a074b0
@ -9,6 +9,18 @@ struct AutoParser {
|
|||||||
tokens: Vec<Token>,
|
tokens: Vec<Token>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* BNF
|
||||||
|
* all terminals in this BNF refer to TokenType values
|
||||||
|
|
||||||
|
literal := Kw::True | Kw::False | StrLiteral | number_literal
|
||||||
|
number_literal := int_literal | float_literal
|
||||||
|
float_literal := digits float_continued
|
||||||
|
float_continued := ε | Period digits
|
||||||
|
int_literal := HexLiteral | nonhex_int
|
||||||
|
nonhex_int := BinNumberSigil+ digits
|
||||||
|
digits := (DigitGroup Underscore)+
|
||||||
|
*/
|
||||||
|
|
||||||
impl AutoParser {
|
impl AutoParser {
|
||||||
fn new(tokens: Vec<Token>) -> AutoParser {
|
fn new(tokens: Vec<Token>) -> AutoParser {
|
||||||
AutoParser { tokens: tokens.into_iter().rev().collect() }
|
AutoParser { tokens: tokens.into_iter().rev().collect() }
|
||||||
|
Loading…
Reference in New Issue
Block a user