70 lines
No EOL
1.8 KiB
Text
70 lines
No EOL
1.8 KiB
Text
==========================================
|
|
parses multiple statements
|
|
==========================================
|
|
var x = {};
|
|
{};
|
|
---
|
|
(program
|
|
(statement (assignment (identifier) (object)))
|
|
(statement (object)))
|
|
|
|
==========================================
|
|
parses if statements
|
|
==========================================
|
|
if (theCondition) {
|
|
var x = 2;
|
|
}
|
|
---
|
|
(program
|
|
(if_statement
|
|
(identifier)
|
|
(statement_block (statement (assignment (identifier) (number))))))
|
|
|
|
==========================================
|
|
parses if-else statements
|
|
==========================================
|
|
if (theCondition) {
|
|
var x = 2;
|
|
} else {
|
|
var x = 4;
|
|
}
|
|
---
|
|
(program (if_statement
|
|
(identifier)
|
|
(statement_block (statement (assignment (identifier) (number))))
|
|
(statement_block (statement (assignment (identifier) (number))))))
|
|
|
|
==============================================
|
|
parses if-else statements with many conditions
|
|
==============================================
|
|
if (conditionA) {
|
|
var x = 2;
|
|
} else if (conditionB)
|
|
var x = 4;
|
|
else {
|
|
var x = 8;
|
|
}
|
|
---
|
|
(program (if_statement
|
|
(identifier)
|
|
(statement_block (statement (assignment (identifier) (number))))
|
|
(if_statement
|
|
(identifier)
|
|
(statement (assignment (identifier) (number)))
|
|
(statement_block (statement (assignment (identifier) (number)))))))
|
|
|
|
==========================================
|
|
parses named functions
|
|
==========================================
|
|
function doThis(argA, argB) {
|
|
var x = argA;
|
|
};
|
|
|
|
doThis(5, 6);
|
|
---
|
|
(program
|
|
(statement (function_expression
|
|
(identifier)
|
|
(formal_parameters (identifier) (identifier))
|
|
(statement_block (statement (assignment (identifier) (identifier))))))
|
|
(statement (function_call (identifier) (number) (number)))) |