add pest
This commit is contained in:
18
pest/src/main.rs
Normal file
18
pest/src/main.rs
Normal file
@@ -0,0 +1,18 @@
|
||||
extern crate pest_derive;
|
||||
extern crate pest;
|
||||
|
||||
use pest::Parser as PestParser;
|
||||
use pest_derive::Parser;
|
||||
|
||||
#[derive(Parser)]
|
||||
#[grammar = "sample.pest"]
|
||||
struct SampleParser;
|
||||
|
||||
|
||||
fn main() {
|
||||
let mut pairs = SampleParser::parse(Rule::expression, "111+222").unwrap_or_else(|e| panic!("{}", e));
|
||||
println!("{:?}", pairs);
|
||||
let a = pairs.next().unwrap().as_str().parse::<i64>().unwrap();
|
||||
pairs.next();
|
||||
let b = pairs.next().unwrap().as_str().parse::<i64>().unwrap();
|
||||
}
|
||||
2
pest/src/sample.pest
Normal file
2
pest/src/sample.pest
Normal file
@@ -0,0 +1,2 @@
|
||||
number = { ('0'..'9')+ }
|
||||
expression = { number ~ "+" ~ number }
|
||||
Reference in New Issue
Block a user