Skip to content

Instantly share code, notes, and snippets.

@wreulicke
Last active November 17, 2021 11:25
Show Gist options
  • Save wreulicke/7712af630d74b713c55a73898980b64e to your computer and use it in GitHub Desktop.
Save wreulicke/7712af630d74b713c55a73898980b64e to your computer and use it in GitHub Desktop.
PEG.jsによる逆ポ
Statement
= a:Expression _ b:Statement _ operator:Operator {return operator(a,b)}
/ Expression
Expression
= a:Number _ b:Number _ operator:Operator {return operator(a,b)}
/ Number
Operator "operator"
= "*" {return function(a,b){return a*b}}
/ "+" {return function(a,b){return a+b}}
/ "-" {return function(a,b){return a-b}}
/ "/" {return function(a,b){return a/b}}
Number
= Double
/Integer
Double
= a:Integer "." b:Integer {return Number(text())};
Integer
= [0-9]+ { return Number(text()); }
_ "whitespace"
= [ \t\n\r]*
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment