Skip to content

Commit

Permalink
Improve json example
Browse files Browse the repository at this point in the history
  • Loading branch information
0x2a-42 committed Dec 27, 2023
1 parent 89c06cf commit 78860e9
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
6 changes: 2 additions & 4 deletions examples/json/src/json.llw
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ value{Value}:
| 'null' #7
;
object{Value}:
'{' [member #1 (',' member #2 !1)* | !1] '}' #3
'{' [member #1 (',' member #2 !)* | !] '}' #3
;
member{(String, Value)}:
String ':' value #1
;
array{Value}:
'[' [value #1 (',' value #2 !1)* | !1] ']' #3
'[' [value #1 (',' value #2 !)* | !] ']' #3
;

start#1 { Ok(value) }
Expand All @@ -38,12 +38,10 @@ object#0 { let mut members = BTreeMap::new(); }
object#1 { members.insert(member.0, member.1); }
object#2 { members.insert(member.0, member.1); }
object#3 { Ok(Value::Object(members)) }
object!1 { diags.push(diagnostic); }

member#1 { check_string(&String.0, &String.1, diags); Ok((String.0, value)) }

array#0 { let mut values = vec![]; }
array#1 { values.push(value); }
array#2 { values.push(value); }
array#3 { Ok(Value::Array(values)) }
array!1 { diags.push(diagnostic); }
4 changes: 3 additions & 1 deletion examples/json/src/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -137,8 +137,10 @@ pub enum Token {
Colon,
#[regex("\"", parse_string)]
String(String),
#[regex(r"[-]?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?", |lex| lex.slice().to_string())]
#[regex(r"-?(0|[1-9]\d*)(\.\d+)?([eE][+-]?\d+)?", |lex| lex.slice().to_string())]
Number(String),
#[regex(r"[[:alpha:]][[:alnum:]]*", |_| Err(LexerError::Invalid))]
Invalid,
}

fn check_string(value: &str, span: &Span, diags: &mut Vec<Diagnostic>) {
Expand Down

0 comments on commit 78860e9

Please sign in to comment.