mirror of https://github.com/Wilfred/difftastic/
249 lines
5.1 KiB
Plaintext
249 lines
5.1 KiB
Plaintext
============================================
|
|
Strings
|
|
============================================
|
|
|
|
"A string with \"double\" and 'single' quotes";
|
|
'A string with "double" and \'single\' quotes';
|
|
|
|
----
|
|
|
|
(program
|
|
(expression_statement (string))
|
|
(expression_statement (string)))
|
|
|
|
============================================
|
|
Numbers
|
|
============================================
|
|
|
|
101;
|
|
3.14;
|
|
|
|
---
|
|
|
|
(program
|
|
(expression_statement (number))
|
|
(expression_statement (number)))
|
|
|
|
============================================
|
|
Variables
|
|
============================================
|
|
|
|
theVar;
|
|
theVar2;
|
|
|
|
---
|
|
|
|
(program
|
|
(expression_statement (identifier))
|
|
(expression_statement (identifier)))
|
|
|
|
============================================
|
|
Booleans
|
|
============================================
|
|
|
|
null;
|
|
undefined;
|
|
true;
|
|
false;
|
|
|
|
---
|
|
|
|
(program
|
|
(expression_statement (null))
|
|
(expression_statement (undefined))
|
|
(expression_statement (true))
|
|
(expression_statement (false)))
|
|
|
|
============================================
|
|
Regexps
|
|
============================================
|
|
|
|
/one/;
|
|
/one/g;
|
|
/one/i;
|
|
/one/gi;
|
|
|
|
---
|
|
|
|
(program
|
|
(expression_statement (regex))
|
|
(expression_statement (regex))
|
|
(expression_statement (regex))
|
|
(expression_statement (regex)))
|
|
|
|
============================================
|
|
Objects
|
|
============================================
|
|
|
|
{};
|
|
{ key1: "value1" };
|
|
{ key1: "value1", "key2": value2, key3: 3.0 };
|
|
|
|
---
|
|
|
|
(program
|
|
(expression_statement (object))
|
|
(expression_statement (object
|
|
(pair (identifier) (string))))
|
|
(expression_statement (object
|
|
(pair (identifier) (string))
|
|
(pair (string) (identifier))
|
|
(pair (identifier) (number)))))
|
|
|
|
============================================
|
|
Arrays
|
|
============================================
|
|
|
|
[];
|
|
[ "item1" ];
|
|
[ "item1", item2 ];
|
|
|
|
---
|
|
|
|
(program
|
|
(expression_statement (array))
|
|
(expression_statement (array (string)))
|
|
(expression_statement (array (string) (identifier))))
|
|
|
|
============================================
|
|
Functions
|
|
============================================
|
|
|
|
function() {};
|
|
function(arg1, arg2) {
|
|
arg2;
|
|
};
|
|
function stuff() {}
|
|
|
|
---
|
|
|
|
(program
|
|
(expression_statement (function (statement_block)))
|
|
(expression_statement (function
|
|
(formal_parameters (identifier) (identifier))
|
|
(statement_block
|
|
(expression_statement (identifier)))))
|
|
(expression_statement (function
|
|
(identifier)
|
|
(statement_block))))
|
|
|
|
============================================
|
|
Property access
|
|
============================================
|
|
|
|
x.someProperty;
|
|
x[someVariable];
|
|
x["some-string"];
|
|
|
|
---
|
|
|
|
(program
|
|
(expression_statement (member_access (identifier) (identifier)))
|
|
(expression_statement (subscript_access (identifier) (identifier)))
|
|
(expression_statement (subscript_access (identifier) (string))))
|
|
|
|
============================================
|
|
Function calls
|
|
============================================
|
|
|
|
x.someMethod(arg1, "arg2");
|
|
(function() {})();
|
|
|
|
---
|
|
|
|
(program
|
|
(expression_statement (function_call
|
|
(member_access (identifier) (identifier))
|
|
(arguments (identifier) (string))))
|
|
(expression_statement (function_call
|
|
(expression (function (statement_block))))))
|
|
|
|
============================================
|
|
Constructor calls
|
|
============================================
|
|
|
|
new module.Klass(1, "two");
|
|
new Thing;
|
|
|
|
---
|
|
|
|
(program
|
|
(expression_statement (constructor_call
|
|
(member_access (identifier) (identifier))
|
|
(arguments (number) (string))))
|
|
(expression_statement (constructor_call
|
|
(identifier))))
|
|
|
|
============================================
|
|
Math operators
|
|
============================================
|
|
|
|
i++;
|
|
i--;
|
|
i + j;
|
|
i - j;
|
|
|
|
---
|
|
|
|
(program
|
|
(expression_statement (math_op (identifier)))
|
|
(expression_statement (math_op (identifier)))
|
|
(expression_statement (math_op (identifier) (identifier)))
|
|
(expression_statement (math_op (identifier) (identifier))))
|
|
|
|
============================================
|
|
Boolean operators
|
|
============================================
|
|
|
|
i || j;
|
|
i && j;
|
|
|
|
---
|
|
|
|
(program
|
|
(expression_statement (bool_op (identifier) (identifier)))
|
|
(expression_statement (bool_op (identifier) (identifier))))
|
|
|
|
============================================
|
|
Relational operators
|
|
============================================
|
|
|
|
x < y;
|
|
x <= y;
|
|
x == y;
|
|
x === y;
|
|
x != y;
|
|
x !== y;
|
|
x >= y;
|
|
x > y;
|
|
|
|
---
|
|
|
|
(program
|
|
(expression_statement (rel_op (identifier) (identifier)))
|
|
(expression_statement (rel_op (identifier) (identifier)))
|
|
(expression_statement (rel_op (identifier) (identifier)))
|
|
(expression_statement (rel_op (identifier) (identifier)))
|
|
(expression_statement (rel_op (identifier) (identifier)))
|
|
(expression_statement (rel_op (identifier) (identifier)))
|
|
(expression_statement (rel_op (identifier) (identifier)))
|
|
(expression_statement (rel_op (identifier) (identifier))))
|
|
|
|
==============================================
|
|
Assignments
|
|
==============================================
|
|
|
|
x = 0;
|
|
x.y = 0;
|
|
x["y"] = 0;
|
|
|
|
---
|
|
|
|
(program
|
|
(expression_statement (var_assignment
|
|
(identifier) (number)))
|
|
(expression_statement (member_assignment
|
|
(identifier) (identifier) (number)))
|
|
(expression_statement (subscript_assignment
|
|
(identifier) (string) (number))))
|