tree-sitter/spec/runtime/languages/javascript/literals.txt
2015-08-23 10:42:06 -07:00

98 lines
2 KiB
Text

==========================================
regexes
==========================================
theFunction(/regex1/, /regex2/g);
---
(program (expression_statement
(function_call (identifier) (arguments (regex) (regex)))))
==========================================
numbers
==========================================
theFunction(100.0, 200);
---
(program (expression_statement
(function_call (identifier) (arguments (number) (number)))))
==========================================
strings
==========================================
theFunction('', "", 'single-quoted-string', "double-quoted-string");
---
(program (expression_statement
(function_call (identifier)
(arguments (string) (string) (string) (string)))))
==========================================
function expressions
==========================================
var x = {
theMethod: function(argA, argB) {
var x = argA;
}
};
---
(program
(var_declaration (var_assignment
(identifier)
(object (pair (identifier) (function_expression
(formal_parameters (identifier) (identifier))
(statement_block
(var_declaration (var_assignment (identifier) (identifier))))))))))
==========================================
comments
==========================================
// this is the beginning of the script.
// here we go.
var thing = {
// this is a property.
// its value is a function.
key: function(x /* this is a parameter */) {
// this is a statement
doStuff();
}
};
---
(program
(comment)
(comment)
(var_declaration (var_assignment
(identifier)
(object
(comment)
(comment)
(pair (identifier) (function_expression
(formal_parameters (identifier) (comment))
(statement_block
(comment)
(expression_statement (function_call (identifier))))))))))
==========================================
comments within expressions
==========================================
y // comment
* z;
---
(program (expression_statement
(math_op (expression (identifier) (comment)) (identifier))))