From 2431a074b03a246d5d39dba6eb75edc0ea5d4dfb Mon Sep 17 00:00:00 2001 From: greg Date: Sat, 10 Mar 2018 20:17:51 -0800 Subject: [PATCH] Starting out with minimal BNF Just to test this idea, I'm going to start out with this simplified BNF of just literals --- src/schala_lang/autoparser.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/schala_lang/autoparser.rs b/src/schala_lang/autoparser.rs index 30b546f..b71ea17 100644 --- a/src/schala_lang/autoparser.rs +++ b/src/schala_lang/autoparser.rs @@ -9,6 +9,18 @@ struct AutoParser { tokens: Vec, } +/* 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 { fn new(tokens: Vec) -> AutoParser { AutoParser { tokens: tokens.into_iter().rev().collect() }