diff --git a/src/syntax/lexer.rs b/src/syntax/lexer.rs index 78d9437..dc4b014 100644 --- a/src/syntax/lexer.rs +++ b/src/syntax/lexer.rs @@ -130,16 +130,16 @@ pub enum Token { Ident(String), #[regex(r"-?[0-9]+", |lex| lex.slice().parse::().ok())] - IntLit(i64), + NumberLit(i64), #[regex(r"-?[0-9]+\.[0-9]+", |lex| lex.slice().parse::().ok())] - FloatLit(f64), + DecimalLit(f64), #[regex(r#""([^"\\]|\\.)*""#, |lex| { let s = lex.slice(); s[1..s.len()-1].to_string() })] - StringLit(String), + TextLit(String), // Time literal: HH:MM or HH:MM:SS #[regex(r"[0-9]{2}:[0-9]{2}(:[0-9]{2})?", |lex| lex.slice().to_string())] @@ -208,9 +208,9 @@ impl fmt::Display for Token { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { match self { | Token::Ident(s) => write!(f, "identifier '{}'", s), - | Token::IntLit(n) => write!(f, "integer {}", n), - | Token::FloatLit(n) => write!(f, "float {}", n), - | Token::StringLit(s) => write!(f, "string \"{}\"", s), + | Token::NumberLit(n) => write!(f, "number {}", n), + | Token::DecimalLit(n) => write!(f, "decimal {}", n), + | Token::TextLit(s) => write!(f, "text \"{}\"", s), | Token::TimeLit(s) => write!(f, "time {}", s), | Token::DurationLit(s) => write!(f, "duration {}", s), | Token::ProseBlock(pb) => write!(f, "prose block ---{}", pb.tag), @@ -404,7 +404,7 @@ mod tests { Token::LBrace, Token::Ident("age".to_string()), Token::Colon, - Token::IntLit(34), + Token::NumberLit(34), Token::RBrace, ] ); @@ -512,7 +512,7 @@ Second prose block content. assert_eq!( tokens, - vec![Token::IntLit(20), Token::DotDot, Token::IntLit(40),] + vec![Token::NumberLit(20), Token::DotDot, Token::NumberLit(40),] ); } diff --git a/src/syntax/parser.lalrpop b/src/syntax/parser.lalrpop index d141147..222ba94 100644 --- a/src/syntax/parser.lalrpop +++ b/src/syntax/parser.lalrpop @@ -244,16 +244,16 @@ Field: Field = { }; Value: Value = { - => Value::Int(<>), - => Value::Float(<>), - => Value::String(<>), + => Value::Int(<>), + => Value::Float(<>), + => Value::String(<>), => Value::Bool(<>), "any" => Value::Any, - ".." => Value::Range( + ".." => Value::Range( Box::new(Value::Int(lo)), Box::new(Value::Int(hi)) ), - ".." => Value::Range( + ".." => Value::Range( Box::new(Value::Float(lo)), Box::new(Value::Float(hi)) ), @@ -572,14 +572,14 @@ DecoratorRepeat: BehaviorNode = { }; DecoratorRepeatN: BehaviorNode = { - "repeat" "(" ")" "{" "}" => BehaviorNode::Decorator { + "repeat" "(" ")" "{" "}" => BehaviorNode::Decorator { decorator_type: DecoratorType::RepeatN(n as u32), child: Box::new(child), }, }; DecoratorRepeatRange: BehaviorNode = { - "repeat" "(" ".." ")" "{" "}" => BehaviorNode::Decorator { + "repeat" "(" ".." ")" "{" "}" => BehaviorNode::Decorator { decorator_type: DecoratorType::RepeatRange(min as u32, max as u32), child: Box::new(child), }, @@ -593,7 +593,7 @@ DecoratorInvert: BehaviorNode = { }; DecoratorRetry: BehaviorNode = { - "retry" "(" ")" "{" "}" => BehaviorNode::Decorator { + "retry" "(" ")" "{" "}" => BehaviorNode::Decorator { decorator_type: DecoratorType::Retry(n as u32), child: Box::new(child), }, @@ -949,9 +949,9 @@ InequalityOp: CompOp = { }; Literal: Expr = { - => Expr::IntLit(<>), - => Expr::FloatLit(<>), - => Expr::StringLit(<>), + => Expr::IntLit(<>), + => Expr::FloatLit(<>), + => Expr::StringLit(<>), => Expr::BoolLit(<>), }; @@ -1037,9 +1037,9 @@ extern { // Literals Ident => Token::Ident(), - IntLit => Token::IntLit(), - FloatLit => Token::FloatLit(), - StringLit => Token::StringLit(), + NumberLit => Token::NumberLit(), + DecimalLit => Token::DecimalLit(), + TextLit => Token::TextLit(), TimeLit => Token::TimeLit(), DurationLit => Token::DurationLit(), ProseBlockToken => Token::ProseBlock(), diff --git a/src/syntax/parser.rs b/src/syntax/parser.rs index 60e48a5..dfe6ac3 100644 --- a/src/syntax/parser.rs +++ b/src/syntax/parser.rs @@ -1,5 +1,5 @@ // auto-generated: "lalrpop 0.21.0" -// sha3: 9ae5a0a6e0bd72f95a858d62264924a212230701aa64e7633fbb46a27c7cd328 +// sha3: 74aa329f2c008adb120b171834cf36dcc8e33b949ab1a2fe8bd5e54d42b398af use crate::syntax::{ ast::*, lexer::Token, @@ -180,7 +180,7 @@ mod __parse__File { // State 32 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 308, 0, 0, 0, 0, 0, 0, 0, -129, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 33 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 322, 321, 323, 238, 320, 205, 57, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 322, 320, 323, 238, 321, 205, 57, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, // State 34 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 201, 196, 203, 198, 197, 199, 202, 194, 200, 195, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 35 @@ -202,7 +202,7 @@ mod __parse__File { // State 43 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 340, 339, 0, 0, 0, 0, 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 342, 341, 343, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 44 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, 322, 321, 323, 238, 320, 205, 57, 0, 0, -117, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, 322, 320, 323, 238, 321, 205, 57, 0, 0, -117, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, // State 45 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 205, 0, -107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 46 @@ -218,13 +218,13 @@ mod __parse__File { // State 51 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 205, 0, 370, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 52 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 322, 321, 323, 238, 320, 205, 57, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 322, 320, 323, 238, 321, 205, 57, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, // State 53 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 205, 0, 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 54 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 55 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 322, 321, 323, 238, 320, 205, 57, 0, 0, 0, 56, -133, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 322, 320, 323, 238, 321, 205, 57, 0, 0, 0, 56, -133, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, // State 56 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 205, 0, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 57 @@ -240,7 +240,7 @@ mod __parse__File { // State 62 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 201, 196, 203, 198, 197, 199, 202, 194, 200, 195, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 63 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, 322, 321, 323, 238, 320, 205, 57, 0, 0, -119, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 285, 322, 320, 323, 238, 321, 205, 57, 0, 0, -119, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, // State 64 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 205, 0, -107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 65 @@ -256,7 +256,7 @@ mod __parse__File { // State 70 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 425, 0, 0, 0, 0, 0, 0, 0, 424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 71 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 322, 321, 323, 238, 320, 205, 57, 0, 0, 0, 56, -135, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 322, 320, 323, 238, 321, 205, 57, 0, 0, 0, 56, -135, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, // State 72 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 205, 0, 431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 73 @@ -272,7 +272,7 @@ mod __parse__File { // State 78 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 201, 196, 203, 198, 197, 199, 202, 194, 200, 195, 326, 0, 0, 0, 0, 0, 0, 0, 441, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 79 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 322, 321, 323, 238, 320, 205, 57, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 322, 320, 323, 238, 321, 205, 57, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, // State 80 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 0, 0, 0, 0, -121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 81 @@ -342,7 +342,7 @@ mod __parse__File { // State 113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 238, 0, 0, 0, 519, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 114 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 322, 321, 323, 238, 320, 205, 57, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 322, 320, 323, 238, 321, 205, 57, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, // State 115 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 193, 201, 196, 203, 198, 197, 199, 202, 194, 200, 195, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 116 @@ -358,7 +358,7 @@ mod __parse__File { // State 121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 212, 0, 0, 0, 0, 0, 205, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 122 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 322, 321, 323, 238, 320, 205, 57, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 319, 318, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 322, 320, 323, 238, 321, 205, 57, 0, 0, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, // State 123 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 489, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 124 @@ -752,9 +752,9 @@ mod __parse__File { // State 318 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -101, -101, 0, 0, 0, 0, -101, -101, 0, 0, 0, 0, -101, -101, 0, 0, -101, 0, -101, -101, 0, 0, -101, -101, 0, -101, -101, 0, -101, 0, 0, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, -101, 0, 0, 0, -101, 0, -101, 0, -101, 0, -101, 0, -101, 0, 0, 0, -101, -101, 0, 0, 0, 0, -101, -101, -101, -101, -101, // State 319 - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -185, -185, 0, 0, 0, 0, -185, -185, 0, 0, 0, 0, 0, 0, 0, 0, -185, 0, 0, -185, 0, 0, 0, 0, 0, -185, -185, 0, -185, 0, 0, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, 0, 0, 0, -185, 0, -185, 0, -185, 0, -185, 0, -185, 0, 0, 0, -185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - // State 320 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -333, -333, 0, 0, 0, 0, -333, -333, 0, 0, 0, 0, 0, 0, 0, 0, -333, 0, 0, -333, 0, 0, 0, 0, 0, -333, -333, 0, -333, 0, 0, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, -333, 0, 0, 0, -333, 0, -333, 0, -333, 0, -333, 0, -333, 0, 0, 0, -333, 0, 380, 0, 0, 0, 0, 0, 0, 0, 0, + // State 320 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -185, -185, 0, 0, 0, 0, -185, -185, 0, 0, 0, 0, 0, 0, 0, 0, -185, 0, 0, -185, 0, 0, 0, 0, 0, -185, -185, 0, -185, 0, 0, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, -185, 0, 0, 0, -185, 0, -185, 0, -185, 0, -185, 0, -185, 0, 0, 0, -185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // State 321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -332, -332, 0, 0, 0, 0, -332, -332, 0, 0, 0, 0, 0, 0, 0, 0, -332, 0, 0, -332, 0, 0, 0, 0, 0, -332, -332, 0, -332, 0, 0, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, -332, 0, 0, 0, -332, 0, -332, 0, -332, 0, -332, 0, -332, 0, 0, 0, -332, 0, 381, 0, 0, 0, 0, 0, 0, 0, 0, // State 322 @@ -2625,9 +2625,9 @@ mod __parse__File { r###""succeed_always""###, r###""fail_always""###, r###"Ident"###, - r###"IntLit"###, - r###"FloatLit"###, - r###"StringLit"###, + r###"NumberLit"###, + r###"DecimalLit"###, + r###"TextLit"###, r###"TimeLit"###, r###"DurationLit"###, r###"ProseBlockToken"###, @@ -2839,9 +2839,9 @@ mod __parse__File { Token::SucceedAlways if true => Some(54), Token::FailAlways if true => Some(55), Token::Ident(_) if true => Some(56), - Token::IntLit(_) if true => Some(57), - Token::FloatLit(_) if true => Some(58), - Token::StringLit(_) if true => Some(59), + Token::NumberLit(_) if true => Some(57), + Token::DecimalLit(_) if true => Some(58), + Token::TextLit(_) if true => Some(59), Token::TimeLit(_) if true => Some(60), Token::DurationLit(_) if true => Some(61), Token::ProseBlock(_) if true => Some(62), @@ -2878,15 +2878,15 @@ mod __parse__File { #[allow(clippy::manual_range_patterns)]match __token_index { 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 => __Symbol::Variant0(__token), 56 | 59 | 60 | 61 => match __token { - Token::Ident(__tok0) | Token::StringLit(__tok0) | Token::TimeLit(__tok0) | Token::DurationLit(__tok0) if true => __Symbol::Variant1(__tok0), + Token::Ident(__tok0) | Token::TextLit(__tok0) | Token::TimeLit(__tok0) | Token::DurationLit(__tok0) if true => __Symbol::Variant1(__tok0), _ => unreachable!(), }, 57 => match __token { - Token::IntLit(__tok0) if true => __Symbol::Variant2(__tok0), + Token::NumberLit(__tok0) if true => __Symbol::Variant2(__tok0), _ => unreachable!(), }, 58 => match __token { - Token::FloatLit(__tok0) if true => __Symbol::Variant3(__tok0), + Token::DecimalLit(__tok0) if true => __Symbol::Variant3(__tok0), _ => unreachable!(), }, 62 => match __token { @@ -9904,7 +9904,7 @@ mod __parse__File { _: core::marker::PhantomData<()>, ) -> (usize, usize) { - // DecoratorRepeatN = "repeat", "(", IntLit, ")", "{", BehaviorNode, "}" => ActionFn(110); + // DecoratorRepeatN = "repeat", "(", NumberLit, ")", "{", BehaviorNode, "}" => ActionFn(110); assert!(__symbols.len() >= 7); let __sym6 = __pop_Variant0(__symbols); let __sym5 = __pop_Variant20(__symbols); @@ -9926,7 +9926,7 @@ mod __parse__File { _: core::marker::PhantomData<()>, ) -> (usize, usize) { - // DecoratorRepeatRange = "repeat", "(", IntLit, "..", IntLit, ")", "{", BehaviorNode, "}" => ActionFn(111); + // DecoratorRepeatRange = "repeat", "(", NumberLit, "..", NumberLit, ")", "{", BehaviorNode, "}" => ActionFn(111); assert!(__symbols.len() >= 9); let __sym8 = __pop_Variant0(__symbols); let __sym7 = __pop_Variant20(__symbols); @@ -9950,7 +9950,7 @@ mod __parse__File { _: core::marker::PhantomData<()>, ) -> (usize, usize) { - // DecoratorRetry = "retry", "(", IntLit, ")", "{", BehaviorNode, "}" => ActionFn(113); + // DecoratorRetry = "retry", "(", NumberLit, ")", "{", BehaviorNode, "}" => ActionFn(113); assert!(__symbols.len() >= 7); let __sym6 = __pop_Variant0(__symbols); let __sym5 = __pop_Variant20(__symbols); @@ -10749,7 +10749,7 @@ mod __parse__File { _: core::marker::PhantomData<()>, ) -> (usize, usize) { - // Literal = IntLit => ActionFn(162); + // Literal = NumberLit => ActionFn(162); let __sym0 = __pop_Variant2(__symbols); let __start = __sym0.0; let __end = __sym0.2; @@ -10764,7 +10764,7 @@ mod __parse__File { _: core::marker::PhantomData<()>, ) -> (usize, usize) { - // Literal = FloatLit => ActionFn(163); + // Literal = DecimalLit => ActionFn(163); let __sym0 = __pop_Variant3(__symbols); let __start = __sym0.0; let __end = __sym0.2; @@ -10779,7 +10779,7 @@ mod __parse__File { _: core::marker::PhantomData<()>, ) -> (usize, usize) { - // Literal = StringLit => ActionFn(164); + // Literal = TextLit => ActionFn(164); let __sym0 = __pop_Variant1(__symbols); let __start = __sym0.0; let __end = __sym0.2; @@ -12563,7 +12563,7 @@ mod __parse__File { _: core::marker::PhantomData<()>, ) -> (usize, usize) { - // Value = IntLit => ActionFn(47); + // Value = NumberLit => ActionFn(47); let __sym0 = __pop_Variant2(__symbols); let __start = __sym0.0; let __end = __sym0.2; @@ -12578,7 +12578,7 @@ mod __parse__File { _: core::marker::PhantomData<()>, ) -> (usize, usize) { - // Value = FloatLit => ActionFn(48); + // Value = DecimalLit => ActionFn(48); let __sym0 = __pop_Variant3(__symbols); let __start = __sym0.0; let __end = __sym0.2; @@ -12593,7 +12593,7 @@ mod __parse__File { _: core::marker::PhantomData<()>, ) -> (usize, usize) { - // Value = StringLit => ActionFn(49); + // Value = TextLit => ActionFn(49); let __sym0 = __pop_Variant1(__symbols); let __start = __sym0.0; let __end = __sym0.2; @@ -12638,7 +12638,7 @@ mod __parse__File { _: core::marker::PhantomData<()>, ) -> (usize, usize) { - // Value = IntLit, "..", IntLit => ActionFn(52); + // Value = NumberLit, "..", NumberLit => ActionFn(52); assert!(__symbols.len() >= 3); let __sym2 = __pop_Variant2(__symbols); let __sym1 = __pop_Variant0(__symbols); @@ -12656,7 +12656,7 @@ mod __parse__File { _: core::marker::PhantomData<()>, ) -> (usize, usize) { - // Value = FloatLit, "..", FloatLit => ActionFn(53); + // Value = DecimalLit, "..", DecimalLit => ActionFn(53); assert!(__symbols.len() >= 3); let __sym2 = __pop_Variant3(__symbols); let __sym1 = __pop_Variant0(__symbols); diff --git a/src/syntax/prop_tests.rs b/src/syntax/prop_tests.rs index 0270207..360f8e3 100644 --- a/src/syntax/prop_tests.rs +++ b/src/syntax/prop_tests.rs @@ -111,8 +111,8 @@ proptest! { let tokens: Vec = lexer.map(|(_, tok, _)| tok).collect(); assert_eq!(tokens.len(), 1); match tokens[0] { - Token::IntLit(val) => assert_eq!(val, n), - _ => panic!("Expected IntLit token"), + Token::NumberLit(val) => assert_eq!(val, n), + _ => panic!("Expected NumberLit token"), } } @@ -123,8 +123,8 @@ proptest! { let tokens: Vec = lexer.map(|(_, tok, _)| tok).collect(); assert_eq!(tokens.len(), 1); match tokens[0] { - Token::FloatLit(_) => {}, - _ => panic!("Expected FloatLit token"), + Token::DecimalLit(_) => {}, + _ => panic!("Expected DecimalLit token"), } } @@ -135,8 +135,8 @@ proptest! { let tokens: Vec = lexer.map(|(_, tok, _)| tok).collect(); assert_eq!(tokens.len(), 1); match &tokens[0] { - Token::StringLit(val) => assert_eq!(val, &s), - _ => panic!("Expected StringLit token"), + Token::TextLit(val) => assert_eq!(val, &s), + _ => panic!("Expected TextLit token"), } } diff --git a/storybook-editor/src/highlighter.rs b/storybook-editor/src/highlighter.rs index ab0345e..6fd6fe8 100644 --- a/storybook-editor/src/highlighter.rs +++ b/storybook-editor/src/highlighter.rs @@ -89,9 +89,9 @@ impl iced::widget::text::Highlighter for StorybookHighlighter { match &token { | Token::Colon => after_colon = true, | Token::Ident(_) | - Token::IntLit(_) | - Token::FloatLit(_) | - Token::StringLit(_) | + Token::NumberLit(_) | + Token::DecimalLit(_) | + Token::TextLit(_) | Token::True | Token::False | Token::TimeLit(_) | diff --git a/storybook-editor/src/syntax_highlight.rs b/storybook-editor/src/syntax_highlight.rs index 54a2486..84d102d 100644 --- a/storybook-editor/src/syntax_highlight.rs +++ b/storybook-editor/src/syntax_highlight.rs @@ -88,10 +88,10 @@ pub fn token_to_color(token: &Token) -> Color { | Token::Ident(_) => Color::from_rgb8(0x50, 0xfa, 0x7b), // Bright green // Number literals - Bright Purple - | Token::IntLit(_) | Token::FloatLit(_) => Color::from_rgb8(0xbd, 0x93, 0xf9), /* Light purple */ + | Token::NumberLit(_) | Token::DecimalLit(_) => Color::from_rgb8(0xbd, 0x93, 0xf9), /* Light purple */ - // String literals - Vibrant Yellow/Gold - | Token::StringLit(_) => Color::from_rgb8(0xf1, 0xfa, 0x8c), // Bright yellow + // Text literals - Vibrant Yellow/Gold + | Token::TextLit(_) => Color::from_rgb8(0xf1, 0xfa, 0x8c), // Bright yellow // Time/duration literals - Bright Teal | Token::TimeLit(_) | Token::DurationLit(_) => Color::from_rgb8(0x66, 0xd9, 0xef), /* Bright teal */ @@ -193,12 +193,12 @@ mod tests { // Strings should be green assert_eq!( - token_to_color(&Token::StringLit("test".to_string())), + token_to_color(&Token::TextLit("test".to_string())), Semantic::SUCCESS ); // Numbers should be gold (lighter) - assert_eq!(token_to_color(&Token::IntLit(42)), Gold::_400); + assert_eq!(token_to_color(&Token::NumberLit(42)), Gold::_400); // Identifiers should be warm gray assert_eq!(