diff options
| author | Kumar Priyansh <[email protected]> | 2019-01-19 12:37:14 +0530 |
|---|---|---|
| committer | Kumar Priyansh <[email protected]> | 2019-01-19 12:37:14 +0530 |
| commit | dcdfc94cb39dfe2c39925a0145ffa45e2d061c30 (patch) | |
| tree | 4f6379d955555b298c0e7b83a67e264240ee5614 /cordova/node_modules/pegjs/examples/arithmetics.pegjs | |
| parent | 76f7b3678d3f1ff99c3935a774d420453b0c3cb9 (diff) | |
| download | WeatherApp-dcdfc94cb39dfe2c39925a0145ffa45e2d061c30.tar.xz WeatherApp-dcdfc94cb39dfe2c39925a0145ffa45e2d061c30.zip | |
Initial Upload via GIT
Diffstat (limited to 'cordova/node_modules/pegjs/examples/arithmetics.pegjs')
| -rw-r--r-- | cordova/node_modules/pegjs/examples/arithmetics.pegjs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/cordova/node_modules/pegjs/examples/arithmetics.pegjs b/cordova/node_modules/pegjs/examples/arithmetics.pegjs new file mode 100644 index 0000000..e7bdc44 --- /dev/null +++ b/cordova/node_modules/pegjs/examples/arithmetics.pegjs @@ -0,0 +1,40 @@ +/* + * Simple Arithmetics Grammar + * ========================== + * + * Accepts expressions like "2 * (3 + 4)" and computes their value. + */ + +Expression + = head:Term tail:(_ ("+" / "-") _ Term)* { + var result = head, i; + + for (i = 0; i < tail.length; i++) { + if (tail[i][1] === "+") { result += tail[i][3]; } + if (tail[i][1] === "-") { result -= tail[i][3]; } + } + + return result; + } + +Term + = head:Factor tail:(_ ("*" / "/") _ Factor)* { + var result = head, i; + + for (i = 0; i < tail.length; i++) { + if (tail[i][1] === "*") { result *= tail[i][3]; } + if (tail[i][1] === "/") { result /= tail[i][3]; } + } + + return result; + } + +Factor + = "(" _ expr:Expression _ ")" { return expr; } + / Integer + +Integer "integer" + = [0-9]+ { return parseInt(text(), 10); } + +_ "whitespace" + = [ \t\n\r]* |
