From dcdfc94cb39dfe2c39925a0145ffa45e2d061c30 Mon Sep 17 00:00:00 2001 From: Kumar Priyansh Date: Sat, 19 Jan 2019 12:37:14 +0530 Subject: Initial Upload via GIT --- .../node_modules/pegjs/examples/arithmetics.pegjs | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 cordova/node_modules/pegjs/examples/arithmetics.pegjs (limited to 'cordova/node_modules/pegjs/examples/arithmetics.pegjs') 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]* -- cgit v1.2.3