mirror of https://github.com/Wilfred/difftastic/
Initial commit
parent
236a8dc0e5
commit
49c31f527c
@ -0,0 +1,9 @@
|
||||
node_modules
|
||||
build
|
||||
|
||||
# files generated by node-tree-sitter-compiler
|
||||
index.js
|
||||
binding.gyp
|
||||
grammar.json
|
||||
src
|
||||
include
|
||||
@ -0,0 +1,35 @@
|
||||
compiler = require("tree-sitter-compiler")
|
||||
{ choice, repeat, seq, keyword, token, optional } = compiler.rules
|
||||
|
||||
module.exports = compiler.grammar
|
||||
name: 'javascript',
|
||||
|
||||
rules:
|
||||
program: -> repeat(@statement)
|
||||
|
||||
statement: -> choice(
|
||||
@expression_statement,
|
||||
@if_statement)
|
||||
|
||||
expression_statement: -> seq(
|
||||
@expression, ";")
|
||||
|
||||
if_statement: -> seq(
|
||||
keyword("if"),
|
||||
"(", @expression, ")",
|
||||
@statement)
|
||||
|
||||
expression: -> choice(
|
||||
@variable,
|
||||
@number,
|
||||
@string)
|
||||
|
||||
variable: -> /\a+\d*/,
|
||||
|
||||
number: -> token(seq(
|
||||
/\d+/,
|
||||
optional(seq(".", /\d+/))))
|
||||
|
||||
string: -> token(choice(
|
||||
seq('"', repeat(choice(/[^"]/, '\\"')), '"'),
|
||||
seq("'", repeat(choice(/[^']/, "\\'")), "'")))
|
||||
@ -0,0 +1,38 @@
|
||||
============================================
|
||||
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 (variable))
|
||||
(expression_statement (variable)))
|
||||
@ -0,0 +1,22 @@
|
||||
{
|
||||
"name": "tree-sitter-javascript",
|
||||
"version": "0.0.0",
|
||||
"description": "Javascript grammar for node-tree-sitter",
|
||||
"main": "index.js",
|
||||
"keywords": [
|
||||
"parser",
|
||||
"lexer"
|
||||
],
|
||||
"author": "Max Brunsfeld",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"bindings": "1.2.x"
|
||||
},
|
||||
"devDependencies": {
|
||||
"tree-sitter-compiler": "*"
|
||||
},
|
||||
"scripts": {
|
||||
"prepublish": "tree-sitter compile",
|
||||
"test": "tree-sitter test"
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue