New Upstream Snapshot - node-jison
Ready changes
Summary
Merged new upstream version: 0.4.17+git20201027.1.cbf9d93 (was: 0.4.17+dfsg).
Resulting package
Built on 2022-03-21T10:47 (took 10m55s)
The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:
apt install -t fresh-snapshots jison
Lintian Result
Diff
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 3f1af78..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-.DS_Store
-node_modules
-
-# Editor backup files
-*.bak
-*~
-web/content/assets/js/jison.js
\ No newline at end of file
diff --git a/.npmignore b/.npmignore
deleted file mode 100644
index bad00b1..0000000
--- a/.npmignore
+++ /dev/null
@@ -1,4 +0,0 @@
-src/
-web/
-examples/
-ports/
\ No newline at end of file
diff --git a/README.md b/README.md
index 56eb45f..098d31b 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,7 @@ Jison
* [issues](http://github.com/zaach/jison/issues)
* [discuss](mailto:jison@librelist.com)
-[![build status](https://secure.travis-ci.org/zaach/jison.png)](http://travis-ci.org/zaach/jison)
+[![build status](https://travis-ci.org/zaach/jison.svg)](http://travis-ci.org/zaach/jison)
An API for creating parsers in JavaScript
-----------------------------------------
@@ -60,38 +60,39 @@ Usage from a CommonJS module
You can generate parsers programatically from JavaScript as well. Assuming Jison is in your commonjs environment's load path:
- // mygenerator.js
- var Parser = require("jison").Parser;
-
- // a grammar in JSON
- var grammar = {
- "lex": {
- "rules": [
- ["\\s+", "/* skip whitespace */"],
- ["[a-f0-9]+", "return 'HEX';"]
- ]
- },
-
- "bnf": {
- "hex_strings" :[ "hex_strings HEX",
- "HEX" ]
- }
- };
-
- // `grammar` can also be a string that uses jison's grammar format
- var parser = new Parser(grammar);
-
- // generate source, ready to be written to disk
- var parserSource = parser.generate();
-
- // you can also use the parser directly from memory
-
- // returns true
- parser.parse("adfe34bc e82a");
-
- // throws lexical error
- parser.parse("adfe34bc zxg");
+```javascript
+// mygenerator.js
+var Parser = require("jison").Parser;
+// a grammar in JSON
+var grammar = {
+ "lex": {
+ "rules": [
+ ["\\s+", "/* skip whitespace */"],
+ ["[a-f0-9]+", "return 'HEX';"]
+ ]
+ },
+
+ "bnf": {
+ "hex_strings" :[ "hex_strings HEX",
+ "HEX" ]
+ }
+};
+
+// `grammar` can also be a string that uses jison's grammar format
+var parser = new Parser(grammar);
+
+// generate source, ready to be written to disk
+var parserSource = parser.generate();
+
+// you can also use the parser directly from memory
+
+// returns true
+parser.parse("adfe34bc e82a");
+
+// throws lexical error
+parser.parse("adfe34bc zxg");
+```
More Documentation
------------------
diff --git a/debian/changelog b/debian/changelog
index 07f0e4d..47a37b4 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+node-jison (0.4.17+git20201027.1.cbf9d93-1) UNRELEASED; urgency=low
+
+ * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk> Mon, 21 Mar 2022 10:43:55 -0000
+
node-jison (0.4.17+dfsg-5) unstable; urgency=medium
* Team upload
diff --git a/debian/patches/use-nodejs.patch b/debian/patches/use-nodejs.patch
index bb5a3a7..6eef25a 100644
--- a/debian/patches/use-nodejs.patch
+++ b/debian/patches/use-nodejs.patch
@@ -1,6 +1,8 @@
Description: Use nodejs
---- a/lib/cli.js
-+++ b/lib/cli.js
+Index: node-jison/lib/cli.js
+===================================================================
+--- node-jison.orig/lib/cli.js
++++ node-jison/lib/cli.js
@@ -1,4 +1,4 @@
-#!/usr/bin/env node
+#!/usr/bin/node
diff --git a/examples/README b/examples/README
deleted file mode 100644
index a31ac71..0000000
--- a/examples/README
+++ /dev/null
@@ -1,2 +0,0 @@
-Use Jison to generate parsers from an example, e.g.:
- $ node ../lib/cli.js basic_lex.jison
diff --git a/examples/ansic.jison b/examples/ansic.jison
deleted file mode 100644
index c8eccd0..0000000
--- a/examples/ansic.jison
+++ /dev/null
@@ -1,418 +0,0 @@
-%token IDENTIFIER CONSTANT STRING_LITERAL SIZEOF
-%token PTR_OP INC_OP DEC_OP LEFT_OP RIGHT_OP LE_OP GE_OP EQ_OP NE_OP
-%token AND_OP OR_OP MUL_ASSIGN DIV_ASSIGN MOD_ASSIGN ADD_ASSIGN
-%token SUB_ASSIGN LEFT_ASSIGN RIGHT_ASSIGN AND_ASSIGN
-%token XOR_ASSIGN OR_ASSIGN TYPE_NAME
-
-%token TYPEDEF EXTERN STATIC AUTO REGISTER
-%token CHAR SHORT INT LONG SIGNED UNSIGNED FLOAT DOUBLE CONST VOLATILE VOID
-%token STRUCT UNION ENUM ELLIPSIS
-
-%token CASE DEFAULT IF ELSE SWITCH WHILE DO FOR GOTO CONTINUE BREAK RETURN
-
-%nonassoc IF_WITHOUT_ELSE
-%nonassoc ELSE
-
-%start translation_unit
-%%
-
-primary_expression
- : IDENTIFIER
- | CONSTANT
- | STRING_LITERAL
- | '(' expression ')'
- ;
-
-postfix_expression
- : primary_expression
- | postfix_expression '[' expression ']'
- | postfix_expression '(' ')'
- | postfix_expression '(' argument_expression_list ')'
- | postfix_expression '.' IDENTIFIER
- | postfix_expression PTR_OP IDENTIFIER
- | postfix_expression INC_OP
- | postfix_expression DEC_OP
- ;
-
-argument_expression_list
- : assignment_expression
- | argument_expression_list ',' assignment_expression
- ;
-
-unary_expression
- : postfix_expression
- | INC_OP unary_expression
- | DEC_OP unary_expression
- | unary_operator cast_expression
- | SIZEOF unary_expression
- | SIZEOF '(' type_name ')'
- ;
-
-unary_operator
- : '&'
- | '*'
- | '+'
- | '-'
- | '~'
- | '!'
- ;
-
-cast_expression
- : unary_expression
- | '(' type_name ')' cast_expression
- ;
-
-multiplicative_expression
- : cast_expression
- | multiplicative_expression '*' cast_expression
- | multiplicative_expression '/' cast_expression
- | multiplicative_expression '%' cast_expression
- ;
-
-additive_expression
- : multiplicative_expression
- | additive_expression '+' multiplicative_expression
- | additive_expression '-' multiplicative_expression
- ;
-
-shift_expression
- : additive_expression
- | shift_expression LEFT_OP additive_expression
- | shift_expression RIGHT_OP additive_expression
- ;
-
-relational_expression
- : shift_expression
- | relational_expression '<' shift_expression
- | relational_expression '>' shift_expression
- | relational_expression LE_OP shift_expression
- | relational_expression GE_OP shift_expression
- ;
-
-equality_expression
- : relational_expression
- | equality_expression EQ_OP relational_expression
- | equality_expression NE_OP relational_expression
- ;
-
-and_expression
- : equality_expression
- | and_expression '&' equality_expression
- ;
-
-exclusive_or_expression
- : and_expression
- | exclusive_or_expression '^' and_expression
- ;
-
-inclusive_or_expression
- : exclusive_or_expression
- | inclusive_or_expression '|' exclusive_or_expression
- ;
-
-logical_and_expression
- : inclusive_or_expression
- | logical_and_expression AND_OP inclusive_or_expression
- ;
-
-logical_or_expression
- : logical_and_expression
- | logical_or_expression OR_OP logical_and_expression
- ;
-
-conditional_expression
- : logical_or_expression
- | logical_or_expression '?' expression ':' conditional_expression
- ;
-
-assignment_expression
- : conditional_expression
- | unary_expression assignment_operator assignment_expression
- ;
-
-assignment_operator
- : '='
- | MUL_ASSIGN
- | DIV_ASSIGN
- | MOD_ASSIGN
- | ADD_ASSIGN
- | SUB_ASSIGN
- | LEFT_ASSIGN
- | RIGHT_ASSIGN
- | AND_ASSIGN
- | XOR_ASSIGN
- | OR_ASSIGN
- ;
-
-expression
- : assignment_expression
- | expression ',' assignment_expression
- ;
-
-constant_expression
- : conditional_expression
- ;
-
-declaration
- : declaration_specifiers ';'
- | declaration_specifiers init_declarator_list ';'
- ;
-
-declaration_specifiers
- : storage_class_specifier
- | storage_class_specifier declaration_specifiers
- | type_specifier
- | type_specifier declaration_specifiers
- | type_qualifier
- | type_qualifier declaration_specifiers
- ;
-
-init_declarator_list
- : init_declarator
- | init_declarator_list ',' init_declarator
- ;
-
-init_declarator
- : declarator
- | declarator '=' initializer
- ;
-
-storage_class_specifier
- : TYPEDEF
- | EXTERN
- | STATIC
- | AUTO
- | REGISTER
- ;
-
-type_specifier
- : VOID
- | CHAR
- | SHORT
- | INT
- | LONG
- | FLOAT
- | DOUBLE
- | SIGNED
- | UNSIGNED
- | struct_or_union_specifier
- | enum_specifier
- | TYPE_NAME
- ;
-
-struct_or_union_specifier
- : struct_or_union IDENTIFIER '{' struct_declaration_list '}'
- | struct_or_union '{' struct_declaration_list '}'
- | struct_or_union IDENTIFIER
- ;
-
-struct_or_union
- : STRUCT
- | UNION
- ;
-
-struct_declaration_list
- : struct_declaration
- | struct_declaration_list struct_declaration
- ;
-
-struct_declaration
- : specifier_qualifier_list struct_declarator_list ';'
- ;
-
-specifier_qualifier_list
- : type_specifier specifier_qualifier_list
- | type_specifier
- | type_qualifier specifier_qualifier_list
- | type_qualifier
- ;
-
-struct_declarator_list
- : struct_declarator
- | struct_declarator_list ',' struct_declarator
- ;
-
-struct_declarator
- : declarator
- | ':' constant_expression
- | declarator ':' constant_expression
- ;
-
-enum_specifier
- : ENUM '{' enumerator_list '}'
- | ENUM IDENTIFIER '{' enumerator_list '}'
- | ENUM IDENTIFIER
- ;
-
-enumerator_list
- : enumerator
- | enumerator_list ',' enumerator
- ;
-
-enumerator
- : IDENTIFIER
- | IDENTIFIER '=' constant_expression
- ;
-
-type_qualifier
- : CONST
- | VOLATILE
- ;
-
-declarator
- : pointer direct_declarator
- | direct_declarator
- ;
-
-direct_declarator
- : IDENTIFIER
- | '(' declarator ')'
- | direct_declarator '[' constant_expression ']'
- | direct_declarator '[' ']'
- | direct_declarator '(' parameter_type_list ')'
- | direct_declarator '(' identifier_list ')'
- | direct_declarator '(' ')'
- ;
-
-pointer
- : '*'
- | '*' type_qualifier_list
- | '*' pointer
- | '*' type_qualifier_list pointer
- ;
-
-type_qualifier_list
- : type_qualifier
- | type_qualifier_list type_qualifier
- ;
-
-
-parameter_type_list
- : parameter_list
- | parameter_list ',' ELLIPSIS
- ;
-
-parameter_list
- : parameter_declaration
- | parameter_list ',' parameter_declaration
- ;
-
-parameter_declaration
- : declaration_specifiers declarator
- | declaration_specifiers abstract_declarator
- | declaration_specifiers
- ;
-
-identifier_list
- : IDENTIFIER
- | identifier_list ',' IDENTIFIER
- ;
-
-type_name
- : specifier_qualifier_list
- | specifier_qualifier_list abstract_declarator
- ;
-
-abstract_declarator
- : pointer
- | direct_abstract_declarator
- | pointer direct_abstract_declarator
- ;
-
-direct_abstract_declarator
- : '(' abstract_declarator ')'
- | '[' ']'
- | '[' constant_expression ']'
- | direct_abstract_declarator '[' ']'
- | direct_abstract_declarator '[' constant_expression ']'
- | '(' ')'
- | '(' parameter_type_list ')'
- | direct_abstract_declarator '(' ')'
- | direct_abstract_declarator '(' parameter_type_list ')'
- ;
-
-initializer
- : assignment_expression
- | '{' initializer_list '}'
- | '{' initializer_list ',' '}'
- ;
-
-initializer_list
- : initializer
- | initializer_list ',' initializer
- ;
-
-statement
- : labeled_statement
- | compound_statement
- | expression_statement
- | selection_statement
- | iteration_statement
- | jump_statement
- ;
-
-labeled_statement
- : IDENTIFIER ':' statement
- | CASE constant_expression ':' statement
- | DEFAULT ':' statement
- ;
-
-compound_statement
- : '{' '}'
- | '{' statement_list '}'
- | '{' declaration_list '}'
- | '{' declaration_list statement_list '}'
- ;
-
-declaration_list
- : declaration
- | declaration_list declaration
- ;
-
-statement_list
- : statement
- | statement_list statement
- ;
-
-expression_statement
- : ';'
- | expression ';'
- ;
-
-selection_statement
- : IF '(' expression ')' statement %prec IF_WITHOUT_ELSE
- | IF '(' expression ')' statement ELSE statement
- | SWITCH '(' expression ')' statement
- ;
-
-iteration_statement
- : WHILE '(' expression ')' statement
- | DO statement WHILE '(' expression ')' ';'
- | FOR '(' expression_statement expression_statement ')' statement
- | FOR '(' expression_statement expression_statement expression ')' statement
- ;
-
-jump_statement
- : GOTO IDENTIFIER ';'
- | CONTINUE ';'
- | BREAK ';'
- | RETURN ';'
- | RETURN expression ';'
- ;
-
-translation_unit
- : external_declaration
- | translation_unit external_declaration
- ;
-
-external_declaration
- : function_definition
- | declaration
- ;
-
-function_definition
- : declaration_specifiers declarator declaration_list compound_statement
- | declaration_specifiers declarator compound_statement
- | declarator declaration_list compound_statement
- | declarator compound_statement
- ;
diff --git a/examples/basic.jison b/examples/basic.jison
deleted file mode 100644
index c23c801..0000000
--- a/examples/basic.jison
+++ /dev/null
@@ -1,11 +0,0 @@
-%%
-
-E
- : E PLUS T
- | T
- ;
-
-T
- : ZERO
- ;
-
diff --git a/examples/basic2.jison b/examples/basic2.jison
deleted file mode 100644
index f47e179..0000000
--- a/examples/basic2.jison
+++ /dev/null
@@ -1,10 +0,0 @@
-
-/* description: Basic grammar that contains a nullable A nonterminal. */
-
-%%
-
-A
- : A x
- |
- ;
-
diff --git a/examples/basic2_lex.jison b/examples/basic2_lex.jison
deleted file mode 100644
index acb0c63..0000000
--- a/examples/basic2_lex.jison
+++ /dev/null
@@ -1,18 +0,0 @@
-
-/* description: Basic grammar that contains a nullable A nonterminal. */
-
-%lex
-%%
-
-\s+ {/* skip whitespace */}
-"x" {return 'x';}
-
-/lex
-
-%%
-
-A
- : A x
- |
- ;
-
diff --git a/examples/basic_lex.jison b/examples/basic_lex.jison
deleted file mode 100644
index ed3d310..0000000
--- a/examples/basic_lex.jison
+++ /dev/null
@@ -1,20 +0,0 @@
-%lex
-
-%%
-\s+ {/* skip whitespace */}
-[0-9]+ {return 'NAT';}
-"+" {return '+';}
-
-/lex
-
-%%
-
-E
- : E '+' T
- | T
- ;
-
-T
- : NAT
- ;
-
diff --git a/examples/calculator.jison b/examples/calculator.jison
deleted file mode 100644
index 2ad240f..0000000
--- a/examples/calculator.jison
+++ /dev/null
@@ -1,73 +0,0 @@
-
-/* description: Parses and executes mathematical expressions. */
-
-/* lexical grammar */
-%lex
-%%
-
-\s+ /* skip whitespace */
-[0-9]+("."[0-9]+)?\b return 'NUMBER'
-"*" return '*'
-"/" return '/'
-"-" return '-'
-"+" return '+'
-"^" return '^'
-"!" return '!'
-"%" return '%'
-"(" return '('
-")" return ')'
-"PI" return 'PI'
-"E" return 'E'
-<<EOF>> return 'EOF'
-. return 'INVALID'
-
-/lex
-
-/* operator associations and precedence */
-
-%left '+' '-'
-%left '*' '/'
-%left '^'
-%right '!'
-%right '%'
-%left UMINUS
-
-%start expressions
-
-%% /* language grammar */
-
-expressions
- : e EOF
- { typeof console !== 'undefined' ? console.log($1) : print($1);
- return $1; }
- ;
-
-e
- : e '+' e
- {$$ = $1+$3;}
- | e '-' e
- {$$ = $1-$3;}
- | e '*' e
- {$$ = $1*$3;}
- | e '/' e
- {$$ = $1/$3;}
- | e '^' e
- {$$ = Math.pow($1, $3);}
- | e '!'
- {{
- $$ = (function fact (n) { return n==0 ? 1 : fact(n-1) * n })($1);
- }}
- | e '%'
- {$$ = $1/100;}
- | '-' e %prec UMINUS
- {$$ = -$2;}
- | '(' e ')'
- {$$ = $2;}
- | NUMBER
- {$$ = Number(yytext);}
- | E
- {$$ = Math.E;}
- | PI
- {$$ = Math.PI;}
- ;
-
diff --git a/examples/calculator.json b/examples/calculator.json
deleted file mode 100644
index bc09aa7..0000000
--- a/examples/calculator.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "comment": "JSON Math Parser",
- // JavaScript comments also work
-
- "lex": {
- "rules": [
- ["\\s+", "/* skip whitespace */"],
- ["[0-9]+(?:\\.[0-9]+)?\\b", "return 'NUMBER'"],
- ["\\*", "return '*'"],
- ["\\/", "return '/'"],
- ["-", "return '-'"],
- ["\\+", "return '+'"],
- ["\\^", "return '^'"],
- ["!", "return '!'"],
- ["%", "return '%'"],
- ["\\(", "return '('"],
- ["\\)", "return ')'"],
- ["PI\\b", "return 'PI'"],
- ["E\\b", "return 'E'"],
- ["$", "return 'EOF'"]
- ]
- },
-
- "operators": [
- ["left", "+", "-"],
- ["left", "*", "/"],
- ["left", "^"],
- ["right", "!"],
- ["right", "%"],
- ["left", "UMINUS"]
- ],
-
- "bnf": {
- "expressions": [["e EOF", "return $1"]],
-
- "e" :[
- ["e + e", "$$ = $1+$3"],
- ["e - e", "$$ = $1-$3"],
- ["e * e", "$$ = $1*$3"],
- ["e / e", "$$ = $1/$3"],
- ["e ^ e", "$$ = Math.pow($1, $3)"],
- ["e !", "$$ = (function(n) {if(n==0) return 1; return arguments.callee(n-1) * n})($1)"],
- ["e %", "$$ = $1/100"],
- ["- e", "$$ = -$2", {"prec": "UMINUS"}],
- ["( e )", "$$ = $2"],
- ["NUMBER", "$$ = Number(yytext)"],
- ["E", "$$ = Math.E"],
- ["PI", "$$ = Math.PI"]
- ]
- }
-}
diff --git a/examples/classy.jison b/examples/classy.jison
deleted file mode 100644
index 295bfe6..0000000
--- a/examples/classy.jison
+++ /dev/null
@@ -1,84 +0,0 @@
-
-/* description: ClassyLang grammar. Very classy. */
-/*
- To build parser:
-
- $ ./bin/jison examples/classy.jison examples/classy.jisonlex
-
-*/
-
-
-/* author: Zach Carter */
-
-%right ASSIGN
-%left OR
-%nonassoc EQUALITY GREATER
-%left PLUS MINUS
-%left TIMES
-%right NOT
-%left DOT
-
-%%
-
-pgm
- : cdl MAIN LBRACE vdl el RBRACE ENDOFFILE
- ;
-
-cdl
- : c cdl
- |
- ;
-
-c
- : CLASS id EXTENDS id LBRACE vdl mdl RBRACE
- ;
-
-vdl
- : VAR t id SEMICOLON vdl
- |
- ;
-
-mdl
- : t id LPAREN t id RPAREN LBRACE vdl el RBRACE mdl
- |
- ;
-
-t
- : NATTYPE
- | id
- ;
-
-id
- : ID
- ;
-
-el
- : e SEMICOLON el
- | e SEMICOLON
- ;
-
-e
- : NATLITERAL
- | NUL
- | id
- | NEW id
- | THIS
- | IF LPAREN e RPAREN LBRACE el RBRACE ELSE LBRACE el RBRACE
- | FOR LPAREN e SEMICOLON e SEMICOLON e RPAREN LBRACE el RBRACE
- | READNAT LPAREN RPAREN
- | PRINTNAT LPAREN e RPAREN
- | e PLUS e
- | e MINUS e
- | e TIMES e
- | e EQUALITY e
- | e GREATER e
- | NOT e
- | e OR e
- | e DOT id
- | id ASSIGN e
- | e DOT id ASSIGN e
- | id LPAREN e RPAREN
- | e DOT id LPAREN e RPAREN
- | LPAREN e RPAREN
- ;
-
diff --git a/examples/classy.jisonlex b/examples/classy.jisonlex
deleted file mode 100644
index e0e7edf..0000000
--- a/examples/classy.jisonlex
+++ /dev/null
@@ -1,39 +0,0 @@
-digit [0-9]
-id [a-zA-Z][a-zA-Z0-9]*
-
-%%
-"//".* /* ignore comment */
-"main" return 'MAIN';
-"class" return 'CLASS';
-"extends" return 'EXTENDS';
-"nat" return 'NATTYPE';
-"if" return 'IF';
-"else" return 'ELSE';
-"for" return 'FOR';
-"printNat" return 'PRINTNAT';
-"readNat" return 'READNAT';
-"this" return 'THIS';
-"new" return 'NEW';
-"var" return 'VAR';
-"null" return 'NUL';
-{digit}+ return 'NATLITERAL';
-{id} return 'ID';
-"==" return 'EQUALITY';
-"=" return 'ASSIGN';
-"+" return 'PLUS';
-"-" return 'MINUS';
-"*" return 'TIMES';
-">" return 'GREATER';
-"||" return 'OR';
-"!" return 'NOT';
-"." return 'DOT';
-"{" return 'LBRACE';
-"}" return 'RBRACE';
-"(" return 'LPAREN';
-")" return 'RPAREN';
-";" return 'SEMICOLON';
-\s+ /* skip whitespace */
-"." throw 'Illegal character';
-<<EOF>> return 'ENDOFFILE';
-
-
diff --git a/examples/classy_ast.jison b/examples/classy_ast.jison
deleted file mode 100644
index eab4239..0000000
--- a/examples/classy_ast.jison
+++ /dev/null
@@ -1,124 +0,0 @@
-/* description: ClassyLang grammar with AST-building actions. Very classy. */
-/*
- To build parser:
-
- $ ./bin/jison examples/classy_ast.jison examples/classy.jisonlex
-
-*/
-
-/* author: Zach Carter */
-
-%{
- function prependChild(node, child){
- node.splice(2,0,child);
- return node;
- }
-%}
-
-%right ASSIGN
-%left OR
-%nonassoc EQUALITY GREATER
-%left PLUS MINUS
-%left TIMES
-%right NOT
-%left DOT
-
-%%
-
-pgm
- : cdl MAIN LBRACE vdl el RBRACE ENDOFFILE
- {{$$ = ['PROGRAM',{},$1,$4,$5]; return $$;}}
- ;
-
-cdl
- : c cdl
- {$$ = prependChild($2, $1);}
- |
- {{$$ = ['CLASS_DECL_LIST',{}];}}
- ;
-
-c
- : CLASS id EXTENDS id LBRACE vdl mdl RBRACE
- {{$$ = ['CLASS_DECL',{},$2,$4,$6,$7];}}
- ;
-
-vdl
- : VAR t id SEMICOLON vdl
- {{$$ = prependChild($5, ['VAR_DECL',{},$2,$3]);}}
- |
- {{$$ = ['VAR_DECL_LIST',{}];}}
- ;
-
-mdl
- : t id LPAREN t id RPAREN LBRACE vdl el RBRACE mdl
- {{$$ = prependChild($11, ['METHOD_DECL',{},$1,$2,$4,$5,$8,$9]);}}
- |
- {{$$ = ['METHOD_DECL_LIST',{}];}}
- ;
-
-t
- : NATTYPE
- {{$$ = ['NAT_TYPE',{}];}}
- | id
- {$$ = $1}
- ;
-
-id
- : ID
- {{$$ = ['AST_ID',{val:yytext}]}}
- ;
-
-el
- : e SEMICOLON el
- {$$ = prependChild($3, $1);}
- | e SEMICOLON
- {{$$ = ['EXPR_LIST',{},$1];}}
- ;
-
-e
- : NATLITERAL
- {{$$ = ['NAT_LITERAL_EXPR',{val:parseInt(yytext)}];}}
- | NUL
- {{$$ = ['NULL_EXPR',{}];}}
- | id
- {{$$ = ['ID_EXPR',{},$1];}}
- | NEW id
- {{$$ = ['NEW_EXPR',{},$2];}}
- | THIS
- {{$$ = ['THIS_EXPR',{}];}}
- | IF LPAREN e RPAREN LBRACE el RBRACE ELSE LBRACE el RBRACE
- {{$$ = ['IF_THEN_ELSE_EXPR',{},$3,$6,$10];}}
- | FOR LPAREN e SEMICOLON e SEMICOLON e RPAREN LBRACE el RBRACE
- {{$$ = ['FOR_EXPR',{},$3,$5,$7,$10];}}
- | READNAT LPAREN RPAREN
- {{$$ = ['READ_EXPR',{}];}}
- | PRINTNAT LPAREN e RPAREN
- {{$$ = ['PRINT_EXPR',{},$3];}}
- | e PLUS e
- {{$$ = ['PLUS_EXPR',{},$1,$3];}}
- | e MINUS e
- {{$$ = ['MINUS_EXPR',{},$1,$3];}}
- | e TIMES e
- {{$$ = ['TIMES_EXPR',{},$1,$3];}}
- | e EQUALITY e
- {{$$ = ['EQUALITY_EXPR',{},$1,$3];}}
- | e GREATER e
- {{$$ = ['GREATER_THAN_EXPR',{},$1,$3];}}
- | NOT e
- {{$$ = ['NOT_EXPR',{},$2];}}
- | e OR e
- {{$$ = ['OR_EXPR',{},$1,$3];}}
- | e DOT id
- {{$$ = ['DOT_ID_EXPR',{},$1,$3];}}
- | id ASSIGN e
- {{$$ = ['ASSIGN_EXPR',{},$1,$3];}}
- | e DOT id ASSIGN e
- {{$$ = ['DOT_ASSIGN_EXPR',{},$1,$3,$5];}}
- | id LPAREN e RPAREN
- {{$$ = ['METHOD_CALL_EXPR',{},$1,$3];}}
- | e DOT id LPAREN e RPAREN
- {{$$ = ['DOT_METHOD_CALL_EXPR',{},$1,$3,$5];}}
- | LPAREN e RPAREN
- {$$ = $2;}
- ;
-
diff --git a/examples/classy_test.src b/examples/classy_test.src
deleted file mode 100644
index cbbac5c..0000000
--- a/examples/classy_test.src
+++ /dev/null
@@ -1,7 +0,0 @@
-class Chris extends Person {
-}
-
-main {
- var string cool;
- printnat(cool);
-}
diff --git a/examples/dism.jison b/examples/dism.jison
deleted file mode 100644
index e6c9131..0000000
--- a/examples/dism.jison
+++ /dev/null
@@ -1,39 +0,0 @@
-
-/* author: Jay Ligatti */
-
-%%
-
-pgm
- : instlist
- ;
-
-instlist
- : label COLON inst instlist
- | inst instlist
- |
- ;
-
-inst
- : ADD intt intt intt
- | SUB intt intt intt
- | MUL intt intt intt
- | MOV intt intt
- | LOD intt intt intt
- | STR intt intt intt
- | JMP intt intt intt
- | BEQ intt intt intt
- | BLT intt intt intt
- | RDN intt
- | PTN intt
- | HLT intt
- ;
-
-label
- : LABEL
- ;
-
-intt
- : INT
- | label
- ;
-
diff --git a/examples/dism_lr0.jison b/examples/dism_lr0.jison
deleted file mode 100644
index 74cbe5d..0000000
--- a/examples/dism_lr0.jison
+++ /dev/null
@@ -1,35 +0,0 @@
-
-/* author: Jay Ligatti */
-
-%%
-
-instlist
- : instlist label COLON inst
- | instlist inst
- | inst
- ;
-
-inst
- : ADD intt intt intt
- | SUB intt intt intt
- | MUL intt intt intt
- | MOV intt intt
- | LOD intt intt intt
- | STR intt intt intt
- | JMP intt intt intt
- | BEQ intt intt intt
- | BLT intt intt intt
- | RDN intt
- | PTN intt
- | HLT intt
- ;
-
-label
- : LABEL
- ;
-
-intt
- : INT
- | label
- ;
-
diff --git a/examples/inherited.y b/examples/inherited.y
deleted file mode 100644
index c40a5ae..0000000
--- a/examples/inherited.y
+++ /dev/null
@@ -1,35 +0,0 @@
-%lex
-%%
-\s+ {}
-(global|local|integer|float) { return yytext; }
-[a-zA-Z_]\w* { return 'id'; }
-. { return yytext; }
-/lex
-%%
-D
- : C T L
- ;
-
-C
- : global
- | local
- ;
-
-T
- : integer
- | float
- ;
-
-L
- : L ',' id {
- console.log("L -> L ',' id ("+yytext+")");
- console.log($id + ' is of type ' + $0);
- console.log($1 + ' is of class ' + $-1);
- }
- | id {
- console.log("L -> id ("+yytext+")");
- console.log($id + ' is of type ' + $0);
- console.log($1 + ' is of class ' + $-1);
- }
- ;
-%%
diff --git a/examples/jscore.jison b/examples/jscore.jison
deleted file mode 100644
index 3d2eb5e..0000000
--- a/examples/jscore.jison
+++ /dev/null
@@ -1,599 +0,0 @@
-/* http://www.opensource.apple.com/source/JavaScriptCore/ */
-
-%start Program
-
-%nonassoc IF_WITHOUT_ELSE
-%nonassoc ELSE
-
-%%
-
-Literal
- : NULLTOKEN
- | TRUETOKEN
- | FALSETOKEN
- | NUMBER
- | STRING
- | '/'
- | DIVEQUAL
- ;
-
-Property
- : IDENT ':' AssignmentExpr
- | STRING ':' AssignmentExpr
- | NUMBER ':' AssignmentExpr
- | IDENT IDENT '(' ')' OPENBRACE FunctionBody CLOSEBRACE
- | IDENT IDENT '(' FormalParameterList ')' OPENBRACE FunctionBody CLOSEBRACE
- ;
-
-PropertyList
- : Property
- | PropertyList ',' Property
- ;
-
-PrimaryExpr
- : PrimaryExprNoBrace
- | OPENBRACE CLOSEBRACE
- | OPENBRACE PropertyList CLOSEBRACE
- | OPENBRACE PropertyList ',' CLOSEBRACE
- ;
-
-PrimaryExprNoBrace
- : THISTOKEN
- | Literal
- | ArrayLiteral
- | IDENT
- | '(' Expr ')'
- ;
-
-ArrayLiteral
- : '[' ElisionOpt ']'
- | '[' ElementList ']'
- | '[' ElementList ',' ElisionOpt ']'
- ;
-
-ElementList
- : ElisionOpt AssignmentExpr
- | ElementList ',' ElisionOpt AssignmentExpr
- ;
-
-ElisionOpt
- :
- | Elision
- ;
-
-Elision
- : ','
- | Elision ','
- ;
-
-MemberExpr
- : PrimaryExpr
- | FunctionExpr
- | MemberExpr '[' Expr ']'
- | MemberExpr '.' IDENT
- | NEW MemberExpr Arguments
- ;
-
-MemberExprNoBF
- : PrimaryExprNoBrace
- | MemberExprNoBF '[' Expr ']'
- | MemberExprNoBF '.' IDENT
- | NEW MemberExpr Arguments
- ;
-
-NewExpr
- : MemberExpr
- | NEW NewExpr
- ;
-
-NewExprNoBF
- : MemberExprNoBF
- | NEW NewExpr
- ;
-
-CallExpr
- : MemberExpr Arguments
- | CallExpr Arguments
- | CallExpr '[' Expr ']'
- | CallExpr '.' IDENT
- ;
-
-CallExprNoBF
- : MemberExprNoBF Arguments
- | CallExprNoBF Arguments
- | CallExprNoBF '[' Expr ']'
- | CallExprNoBF '.' IDENT
- ;
-
-Arguments
- : '(' ')'
- | '(' ArgumentList ')'
- ;
-
-ArgumentList
- : AssignmentExpr
- | ArgumentList ',' AssignmentExpr
- ;
-
-LeftHandSideExpr
- : NewExpr
- | CallExpr
- ;
-
-LeftHandSideExprNoBF
- : NewExprNoBF
- | CallExprNoBF
- ;
-
-PostfixExpr
- : LeftHandSideExpr
- | LeftHandSideExpr PLUSPLUS
- | LeftHandSideExpr MINUSMINUS
- ;
-
-PostfixExprNoBF
- : LeftHandSideExprNoBF
- | LeftHandSideExprNoBF PLUSPLUS
- | LeftHandSideExprNoBF MINUSMINUS
- ;
-
-UnaryExprCommon
- : DELETETOKEN UnaryExpr
- | VOIDTOKEN UnaryExpr
- | TYPEOF UnaryExpr
- | PLUSPLUS UnaryExpr
- | AUTOPLUSPLUS UnaryExpr
- | MINUSMINUS UnaryExpr
- | AUTOMINUSMINUS UnaryExpr
- | '+' UnaryExpr
- | '-' UnaryExpr
- | '~' UnaryExpr
- | '!' UnaryExpr
- ;
-
-UnaryExpr
- : PostfixExpr
- | UnaryExprCommon
- ;
-
-UnaryExprNoBF
- : PostfixExprNoBF
- | UnaryExprCommon
- ;
-
-MultiplicativeExpr
- : UnaryExpr
- | MultiplicativeExpr '*' UnaryExpr
- | MultiplicativeExpr '/' UnaryExpr
- | MultiplicativeExpr '%' UnaryExpr
- ;
-
-MultiplicativeExprNoBF
- : UnaryExprNoBF
- | MultiplicativeExprNoBF '*' UnaryExpr
- | MultiplicativeExprNoBF '/' UnaryExpr
- | MultiplicativeExprNoBF '%' UnaryExpr
- ;
-
-AdditiveExpr
- : MultiplicativeExpr
- | AdditiveExpr '+' MultiplicativeExpr
- | AdditiveExpr '-' MultiplicativeExpr
- ;
-
-AdditiveExprNoBF
- : MultiplicativeExprNoBF
- | AdditiveExprNoBF '+' MultiplicativeExpr
- | AdditiveExprNoBF '-' MultiplicativeExpr
- ;
-
-ShiftExpr
- : AdditiveExpr
- | ShiftExpr LSHIFT AdditiveExpr
- | ShiftExpr RSHIFT AdditiveExpr
- | ShiftExpr URSHIFT AdditiveExpr
- ;
-
-ShiftExprNoBF
- : AdditiveExprNoBF
- | ShiftExprNoBF LSHIFT AdditiveExpr
- | ShiftExprNoBF RSHIFT AdditiveExpr
- | ShiftExprNoBF URSHIFT AdditiveExpr
- ;
-
-RelationalExpr
- : ShiftExpr
- | RelationalExpr '<' ShiftExpr
- | RelationalExpr '>' ShiftExpr
- | RelationalExpr LE ShiftExpr
- | RelationalExpr GE ShiftExpr
- | RelationalExpr INSTANCEOF ShiftExpr
- | RelationalExpr INTOKEN ShiftExpr
- ;
-
-RelationalExprNoIn
- : ShiftExpr
- | RelationalExprNoIn '<' ShiftExpr
- | RelationalExprNoIn '>' ShiftExpr
- | RelationalExprNoIn LE ShiftExpr
- | RelationalExprNoIn GE ShiftExpr
- | RelationalExprNoIn INSTANCEOF ShiftExpr
- ;
-
-RelationalExprNoBF
- : ShiftExprNoBF
- | RelationalExprNoBF '<' ShiftExpr
- | RelationalExprNoBF '>' ShiftExpr
- | RelationalExprNoBF LE ShiftExpr
- | RelationalExprNoBF GE ShiftExpr
- | RelationalExprNoBF INSTANCEOF ShiftExpr
- | RelationalExprNoBF INTOKEN ShiftExpr
- ;
-
-EqualityExpr
- : RelationalExpr
- | EqualityExpr EQEQ RelationalExpr
- | EqualityExpr NE RelationalExpr
- | EqualityExpr STREQ RelationalExpr
- | EqualityExpr STRNEQ RelationalExpr
- ;
-
-EqualityExprNoIn
- : RelationalExprNoIn
- | EqualityExprNoIn EQEQ RelationalExprNoIn
- | EqualityExprNoIn NE RelationalExprNoIn
- | EqualityExprNoIn STREQ RelationalExprNoIn
- | EqualityExprNoIn STRNEQ RelationalExprNoIn
- ;
-
-EqualityExprNoBF
- : RelationalExprNoBF
- | EqualityExprNoBF EQEQ RelationalExpr
- | EqualityExprNoBF NE RelationalExpr
- | EqualityExprNoBF STREQ RelationalExpr
- | EqualityExprNoBF STRNEQ RelationalExpr
- ;
-
-BitwiseANDExpr
- : EqualityExpr
- | BitwiseANDExpr '&' EqualityExpr
- ;
-
-BitwiseANDExprNoIn
- : EqualityExprNoIn
- | BitwiseANDExprNoIn '&' EqualityExprNoIn
- ;
-
-BitwiseANDExprNoBF
- : EqualityExprNoBF
- | BitwiseANDExprNoBF '&' EqualityExpr
- ;
-
-BitwiseXORExpr
- : BitwiseANDExpr
- | BitwiseXORExpr '^' BitwiseANDExpr
- ;
-
-BitwiseXORExprNoIn
- : BitwiseANDExprNoIn
- | BitwiseXORExprNoIn '^' BitwiseANDExprNoIn
- ;
-
-BitwiseXORExprNoBF
- : BitwiseANDExprNoBF
- | BitwiseXORExprNoBF '^' BitwiseANDExpr
- ;
-
-BitwiseORExpr
- : BitwiseXORExpr
- | BitwiseORExpr '|' BitwiseXORExpr
- ;
-
-BitwiseORExprNoIn
- : BitwiseXORExprNoIn
- | BitwiseORExprNoIn '|' BitwiseXORExprNoIn
- ;
-
-BitwiseORExprNoBF
- : BitwiseXORExprNoBF
- | BitwiseORExprNoBF '|' BitwiseXORExpr
- ;
-
-LogicalANDExpr
- : BitwiseORExpr
- | LogicalANDExpr AND BitwiseORExpr
- ;
-
-LogicalANDExprNoIn
- : BitwiseORExprNoIn
- | LogicalANDExprNoIn AND BitwiseORExprNoIn
- ;
-
-LogicalANDExprNoBF
- : BitwiseORExprNoBF
- | LogicalANDExprNoBF AND BitwiseORExpr
- ;
-
-LogicalORExpr
- : LogicalANDExpr
- | LogicalORExpr OR LogicalANDExpr
- ;
-
-LogicalORExprNoIn
- : LogicalANDExprNoIn
- | LogicalORExprNoIn OR LogicalANDExprNoIn
- ;
-
-LogicalORExprNoBF
- : LogicalANDExprNoBF
- | LogicalORExprNoBF OR LogicalANDExpr
- ;
-
-ConditionalExpr
- : LogicalORExpr
- | LogicalORExpr '?' AssignmentExpr ':' AssignmentExpr
- ;
-
-ConditionalExprNoIn
- : LogicalORExprNoIn
- | LogicalORExprNoIn '?' AssignmentExprNoIn ':' AssignmentExprNoIn
- ;
-
-ConditionalExprNoBF
- : LogicalORExprNoBF
- | LogicalORExprNoBF '?' AssignmentExpr ':' AssignmentExpr
- ;
-
-AssignmentExpr
- : ConditionalExpr
- | LeftHandSideExpr AssignmentOperator AssignmentExpr
- ;
-
-AssignmentExprNoIn
- : ConditionalExprNoIn
- | LeftHandSideExpr AssignmentOperator AssignmentExprNoIn
- ;
-
-AssignmentExprNoBF
- : ConditionalExprNoBF
- | LeftHandSideExprNoBF AssignmentOperator AssignmentExpr
- ;
-
-AssignmentOperator
- : '='
- | PLUSEQUAL
- | MINUSEQUAL
- | MULTEQUAL
- | DIVEQUAL
- | LSHIFTEQUAL
- | RSHIFTEQUAL
- | URSHIFTEQUAL
- | ANDEQUAL
- | XOREQUAL
- | OREQUAL
- | MODEQUAL
- ;
-
-Expr
- : AssignmentExpr
- | Expr ',' AssignmentExpr
- ;
-
-ExprNoIn
- : AssignmentExprNoIn
- | ExprNoIn ',' AssignmentExprNoIn
- ;
-
-ExprNoBF
- : AssignmentExprNoBF
- | ExprNoBF ',' AssignmentExpr
- ;
-
-Statement
- : Block
- | VariableStatement
- | ConstStatement
- | FunctionDeclaration
- | EmptyStatement
- | ExprStatement
- | IfStatement
- | IterationStatement
- | ContinueStatement
- | BreakStatement
- | ReturnStatement
- | WithStatement
- | SwitchStatement
- | LabelledStatement
- | ThrowStatement
- | TryStatement
- | DebuggerStatement
- ;
-
-Block
- : OPENBRACE CLOSEBRACE
- | OPENBRACE SourceElements CLOSEBRACE
- ;
-
-VariableStatement
- : VAR VariableDeclarationList ';'
- | VAR VariableDeclarationList error
- ;
-
-VariableDeclarationList
- : IDENT
- | IDENT Initializer
- | VariableDeclarationList ',' IDENT
- | VariableDeclarationList ',' IDENT Initializer
- ;
-
-VariableDeclarationListNoIn
- : IDENT
- | IDENT InitializerNoIn
- | VariableDeclarationListNoIn ',' IDENT
- | VariableDeclarationListNoIn ',' IDENT InitializerNoIn
- ;
-
-ConstStatement
- : CONSTTOKEN ConstDeclarationList ';'
- | CONSTTOKEN ConstDeclarationList error
- ;
-
-ConstDeclarationList
- : ConstDeclaration
- | ConstDeclarationList ',' ConstDeclaration
- ;
-
-ConstDeclaration
- : IDENT
- | IDENT Initializer
- ;
-
-Initializer
- : '=' AssignmentExpr
- ;
-
-InitializerNoIn
- : '=' AssignmentExprNoIn
- ;
-
-EmptyStatement
- : ';'
- ;
-
-ExprStatement
- : ExprNoBF ';'
- | ExprNoBF error
- ;
-
-IfStatement
- : IF '(' Expr ')' Statement %prec IF_WITHOUT_ELSE
- | IF '(' Expr ')' Statement ELSE Statement
- ;
-
-IterationStatement
- : DO Statement WHILE '(' Expr ')' ';'
- | DO Statement WHILE '(' Expr ')' error
- | WHILE '(' Expr ')' Statement
- | FOR '(' ExprNoInOpt ';' ExprOpt ';' ExprOpt ')' Statement
- | FOR '(' VAR VariableDeclarationListNoIn ';' ExprOpt ';' ExprOpt ')' Statement
- | FOR '(' LeftHandSideExpr INTOKEN Expr ')' Statement
- | FOR '(' VAR IDENT INTOKEN Expr ')' Statement
- | FOR '(' VAR IDENT InitializerNoIn INTOKEN Expr ')' Statement
- ;
-
-ExprOpt
- :
- | Expr
- ;
-
-ExprNoInOpt
- :
- | ExprNoIn
- ;
-
-ContinueStatement
- : CONTINUE ';'
- | CONTINUE error
- | CONTINUE IDENT ';'
- | CONTINUE IDENT error
- ;
-
-BreakStatement
- : BREAK ';'
- | BREAK error
- | BREAK IDENT ';'
- | BREAK IDENT error
- ;
-
-ReturnStatement
- : RETURN ';'
- | RETURN error
- | RETURN Expr ';'
- | RETURN Expr error
- ;
-
-WithStatement
- : WITH '(' Expr ')' Statement
- ;
-
-SwitchStatement
- : SWITCH '(' Expr ')' CaseBlock
- ;
-
-CaseBlock
- : OPENBRACE CaseClausesOpt CLOSEBRACE
- | OPENBRACE CaseClausesOpt DefaultClause CaseClausesOpt CLOSEBRACE
- ;
-
-CaseClausesOpt
- :
- | CaseClauses
- ;
-
-CaseClauses
- : CaseClause
- | CaseClauses CaseClause
- ;
-
-CaseClause
- : CASE Expr ':'
- | CASE Expr ':' SourceElements
- ;
-
-DefaultClause
- : DEFAULT ':'
- | DEFAULT ':' SourceElements
- ;
-
-LabelledStatement
- : IDENT ':' Statement
- ;
-
-ThrowStatement
- : THROW Expr ';'
- | THROW Expr error
- ;
-
-TryStatement
- : TRY Block FINALLY Block
- | TRY Block CATCH '(' IDENT ')' Block
- | TRY Block CATCH '(' IDENT ')' Block FINALLY Block
- ;
-
-DebuggerStatement
- : DEBUGGER ';'
- | DEBUGGER error
- ;
-
-FunctionDeclaration
- : FUNCTION IDENT '(' ')' OPENBRACE FunctionBody CLOSEBRACE
- | FUNCTION IDENT '(' FormalParameterList ')' OPENBRACE FunctionBody CLOSEBRACE
- ;
-
-FunctionExpr
- : FUNCTION '(' ')' OPENBRACE FunctionBody CLOSEBRACE
- | FUNCTION '(' FormalParameterList ')' OPENBRACE FunctionBody CLOSEBRACE
- | FUNCTION IDENT '(' ')' OPENBRACE FunctionBody CLOSEBRACE
- | FUNCTION IDENT '(' FormalParameterList ')' OPENBRACE FunctionBody CLOSEBRACE
- ;
-
-FormalParameterList
- : IDENT
- | FormalParameterList ',' IDENT
- ;
-
-FunctionBody
- :
- | SourceElements
- ;
-
-Program
- :
- | SourceElements
- ;
-
-SourceElements
- : Statement
- | SourceElements Statement
- ;
-
diff --git a/examples/json.js b/examples/json.js
deleted file mode 100644
index a206db2..0000000
--- a/examples/json.js
+++ /dev/null
@@ -1,78 +0,0 @@
-var Generator = require("../lib/jison").Generator;
-
-exports.grammar = {
- "comment": "ECMA-262 5th Edition, 15.12.1 The JSON Grammar.",
- "author": "Zach Carter",
-
- "lex": {
- "macros": {
- "digit": "[0-9]",
- "esc": "\\\\",
- "int": "-?(?:[0-9]|[1-9][0-9]+)",
- "exp": "(?:[eE][-+]?[0-9]+)",
- "frac": "(?:\\.[0-9]+)"
- },
- "rules": [
- ["\\s+", "/* skip whitespace */"],
- ["{int}{frac}?{exp}?\\b", "return 'NUMBER';"],
- ["\"(?:{esc}[\"bfnrt/{esc}]|{esc}u[a-fA-F0-9]{4}|[^\"{esc}])*\"", "yytext = yytext.substr(1,yyleng-2); return 'STRING';"],
- ["\\{", "return '{'"],
- ["\\}", "return '}'"],
- ["\\[", "return '['"],
- ["\\]", "return ']'"],
- [",", "return ','"],
- [":", "return ':'"],
- ["true\\b", "return 'TRUE'"],
- ["false\\b", "return 'FALSE'"],
- ["null\\b", "return 'NULL'"]
- ]
- },
-
- "tokens": "STRING NUMBER { } [ ] , : TRUE FALSE NULL",
- "start": "JSONText",
-
- "bnf": {
- "JSONString": [ "STRING" ],
-
- "JSONNullLiteral": [ "NULL" ],
-
- "JSONNumber": [ "NUMBER" ],
-
- "JSONBooleanLiteral": [ "TRUE", "FALSE" ],
-
-
- "JSONText": [ "JSONValue" ],
-
- "JSONValue": [ "JSONNullLiteral",
- "JSONBooleanLiteral",
- "JSONString",
- "JSONNumber",
- "JSONObject",
- "JSONArray" ],
-
- "JSONObject": [ "{ }",
- "{ JSONMemberList }" ],
-
- "JSONMember": [ "JSONString : JSONValue" ],
-
- "JSONMemberList": [ "JSONMember",
- "JSONMemberList , JSONMember" ],
-
- "JSONArray": [ "[ ]",
- "[ JSONElementList ]" ],
-
- "JSONElementList": [ "JSONValue",
- "JSONElementList , JSONValue" ]
- }
-};
-
-var options = {type: "slr", moduleType: "commonjs", moduleName: "jsoncheck"};
-
-exports.main = function main () {
- var code = new Generator(exports.grammar, options).generate();
- console.log(code);
-};
-
-if (require.main === module)
- exports.main();
-
diff --git a/examples/json_ast.js b/examples/json_ast.js
deleted file mode 100644
index 8a817e1..0000000
--- a/examples/json_ast.js
+++ /dev/null
@@ -1,79 +0,0 @@
-var Generator = require("../lib/jison").Generator;
-
-exports.grammar = {
- "comment": "ECMA-262 5th Edition, 15.12.1 The JSON Grammar. Parses JSON strings into objects.",
- "author": "Zach Carter",
-
- "lex": {
- "macros": {
- "digit": "[0-9]",
- "esc": "\\\\",
- "int": "-?(?:[0-9]|[1-9][0-9]+)",
- "exp": "(?:[eE][-+]?[0-9]+)",
- "frac": "(?:\\.[0-9]+)"
- },
- "rules": [
- ["\\s+", "/* skip whitespace */"],
- ["{int}{frac}?{exp}?\\b", "return 'NUMBER';"],
- ["\"(?:{esc}[\"bfnrt/{esc}]|{esc}u[a-fA-F0-9]{4}|[^\"{esc}])*\"", "yytext = yytext.substr(1,yyleng-2); return 'STRING';"],
- ["\\{", "return '{'"],
- ["\\}", "return '}'"],
- ["\\[", "return '['"],
- ["\\]", "return ']'"],
- [",", "return ','"],
- [":", "return ':'"],
- ["true\\b", "return 'TRUE'"],
- ["false\\b", "return 'FALSE'"],
- ["null\\b", "return 'NULL'"]
- ]
- },
-
- "tokens": "STRING NUMBER { } [ ] , : TRUE FALSE NULL",
- "start": "JSONText",
-
- "bnf": {
- "JSONString": [[ "STRING", "$$ = yytext;" ]],
-
- "JSONNumber": [[ "NUMBER", "$$ = Number(yytext);" ]],
-
- "JSONNullLiteral": [[ "NULL", "$$ = null;" ]],
-
- "JSONBooleanLiteral": [[ "TRUE", "$$ = true;" ],
- [ "FALSE", "$$ = false;" ]],
-
-
- "JSONText": [[ "JSONValue", "return $$ = $1;" ]],
-
- "JSONValue": [[ "JSONNullLiteral", "$$ = $1;" ],
- [ "JSONBooleanLiteral", "$$ = $1;" ],
- [ "JSONString", "$$ = $1;" ],
- [ "JSONNumber", "$$ = $1;" ],
- [ "JSONObject", "$$ = $1;" ],
- [ "JSONArray", "$$ = $1;" ]],
-
- "JSONObject": [[ "{ }", "$$ = {};" ],
- [ "{ JSONMemberList }", "$$ = $2;" ]],
-
- "JSONMember": [[ "JSONString : JSONValue", "$$ = [$1, $3];" ]],
-
- "JSONMemberList": [[ "JSONMember", "$$ = {}; $$[$1[0]] = $1[1];" ],
- [ "JSONMemberList , JSONMember", "$$ = $1; $1[$3[0]] = $3[1];" ]],
-
- "JSONArray": [[ "[ ]", "$$ = [];" ],
- [ "[ JSONElementList ]", "$$ = $2;" ]],
-
- "JSONElementList": [[ "JSONValue", "$$ = [$1];" ],
- [ "JSONElementList , JSONValue", "$$ = $1; $1.push($3);" ]]
- }
-};
-
-var options = {type: "slr", moduleType: "commonjs", moduleName: "jsonparse"};
-
-exports.main = function main (args) {
- var code = new Generator(exports.grammar, options).generate();
- console.log(code);
-};
-
-if (require.main === module)
- exports.main();
-
diff --git a/examples/lambdacalc.jison b/examples/lambdacalc.jison
deleted file mode 100644
index f929c70..0000000
--- a/examples/lambdacalc.jison
+++ /dev/null
@@ -1,54 +0,0 @@
-/* Lambda calculus grammar by Zach Carter */
-
-%lex
-%%
-
-\s*\n\s* {/* ignore */}
-"(" { return '('; }
-")" { return ')'; }
-"^"|"λ" { return 'LAMBDA'; }
-"."\s? { return '.'; }
-[a-zA-Z] { return 'VAR'; }
-\s+ { return 'SEP'; }
-<<EOF>> { return 'EOF'; }
-/lex
-
-
-%right LAMBDA
-%left SEP
-
-%%
-
-file
- : expr EOF
- { return $expr; }
- ;
-
-expr
- : LAMBDA var_list '.' expr
- %{
- var temp = ["LambdaExpr", $var_list.shift(), $expr];
- $var_list.forEach(function (v) {
- temp = ["LambdaExpr", v, temp];
- });
- $$ = temp;
- %}
- | expr SEP expr
- { $$ = ["ApplyExpr", $expr1, $expr2]; }
- | var
- { $$ = ["VarExpr", $var]; }
- | '(' expr ')'
- { $$ = $expr; }
- ;
-
-var_list
- : var_list var
- { $$ = $var_list; $$.unshift($var); }
- | var
- { $$ = [$var]; }
- ;
-
-var
- : VAR
- { $$ = yytext; }
- ;
diff --git a/examples/nv_classy_ast.jison b/examples/nv_classy_ast.jison
deleted file mode 100644
index 057a816..0000000
--- a/examples/nv_classy_ast.jison
+++ /dev/null
@@ -1,126 +0,0 @@
-/* description: ClassyLang grammar with AST-building actions. Very classy. */
-/*
- To build parser:
-
- $ ./bin/jison examples/classy_ast.jison examples/classy.jisonlex
-
-*/
-
-/* author: Zach Carter */
-
-%{
- function prependChild(node, child){
- node.splice(2,0,child);
- return node;
- }
-%}
-
-%ebnf
-
-%right ASSIGN
-%left OR
-%nonassoc EQUALITY GREATER
-%left PLUS MINUS
-%left TIMES
-%right NOT
-%left DOT
-
-%%
-
-pgm
- : cdl MAIN LBRACE vdl el RBRACE ENDOFFILE
- {{$$ = ['PROGRAM',{},$1,$4,$5]; console.log(JSON.stringify($$, null, 4)); return $$; }}
- ;
-
-cdl
- : c cdl
- {$$ = prependChild($2, $1);}
- |
- {{$$ = ['CLASS_DECL_LIST',{}];}}
- ;
-
-c
- : CLASS id[class_name] EXTENDS id[base_class] LBRACE vdl mdl RBRACE
- {{$$ = ['CLASS_DECL',{},$class_name,$base_class,$vdl,$mdl];}}
- ;
-
-vdl
- : VAR t id SEMICOLON vdl
- {{$$ = prependChild($5, ['VAR_DECL',{},$2,$3]);}}
- |
- {{$$ = ['VAR_DECL_LIST',{}];}}
- ;
-
-mdl
- : t id LPAREN t id RPAREN LBRACE vdl el RBRACE mdl
- {{$$ = prependChild($11, ['METHOD_DECL',{},$1,$2,$4,$5,$8,$9]);}}
- |
- {{$$ = ['METHOD_DECL_LIST',{}];}}
- ;
-
-t
- : NATTYPE
- {{$$ = ['NAT_TYPE',{}];}}
- | id
- {$$ = $1}
- ;
-
-id
- : ID
- {{$$ = ['AST_ID',{val:yytext}]}}
- ;
-
-el
- : e SEMICOLON el
- {$$ = prependChild($3, $1);}
- | e SEMICOLON
- {{$$ = ['EXPR_LIST',{},$1];}}
- ;
-
-e
- : NATLITERAL
- {{$$ = ['NAT_LITERAL_EXPR',{val:parseInt(yytext)}];}}
- | NUL
- {{$$ = ['NULL_EXPR',{}];}}
- | id
- {{$$ = ['ID_EXPR',{},$1];}}
- | NEW id
- {{$$ = ['NEW_EXPR',{},$2];}}
- | THIS
- {{$$ = ['THIS_EXPR',{}];}}
- | IF LPAREN e RPAREN LBRACE el RBRACE ELSE LBRACE el RBRACE
- {{$$ = ['IF_THEN_ELSE_EXPR',{},$3,$6,$10];}}
- | FOR LPAREN e SEMICOLON e SEMICOLON e RPAREN LBRACE el RBRACE
- {{$$ = ['FOR_EXPR',{},$3,$5,$7,$10];}}
- | READNAT LPAREN RPAREN
- {{$$ = ['READ_EXPR',{}];}}
- | PRINTNAT LPAREN e RPAREN
- {{$$ = ['PRINT_EXPR',{},$3];}}
- | e PLUS e
- {{$$ = ['PLUS_EXPR',{},$1,$3];}}
- | e MINUS e
- {{$$ = ['MINUS_EXPR',{},$1,$3];}}
- | e TIMES e
- {{$$ = ['TIMES_EXPR',{},$1,$3];}}
- | e EQUALITY e
- {{$$ = ['EQUALITY_EXPR',{},$1,$3];}}
- | e GREATER e
- {{$$ = ['GREATER_THAN_EXPR',{},$1,$3];}}
- | NOT e
- {{$$ = ['NOT_EXPR',{},$2];}}
- | e OR e
- {{$$ = ['OR_EXPR',{},$1,$3];}}
- | e DOT id
- {{$$ = ['DOT_ID_EXPR',{},$1,$3];}}
- | id ASSIGN e
- {{$$ = ['ASSIGN_EXPR',{},$1,$3];}}
- | e DOT id ASSIGN e
- {{$$ = ['DOT_ASSIGN_EXPR',{},$1,$3,$5];}}
- | id LPAREN e RPAREN
- {{$$ = ['METHOD_CALL_EXPR',{},$1,$3];}}
- | e DOT id LPAREN e RPAREN
- {{$$ = ['DOT_METHOD_CALL_EXPR',{},$1,$3,$5];}}
- | LPAREN e RPAREN
- {$$ = $2;}
- ;
-
diff --git a/examples/phraser.jison b/examples/phraser.jison
deleted file mode 100644
index 3c96e4d..0000000
--- a/examples/phraser.jison
+++ /dev/null
@@ -1,46 +0,0 @@
-/* description: Parses words out of html, ignoring html in the parse, but returning it in the end */
-
-/* lexical grammar */
-%lex
-%%
-"<"(.|\n)*?">" return 'TAG'
-[a-zA-Z0-9]+ return 'WORD'
-(.|\n) return 'CHAR'
-<<EOF>> return 'EOF'
-
-
-/lex
-
-%start html
-
-%% /* language grammar */
-
-html
- : contents EOF
- {return $1;}
- ;
-
-contents
- : content
- {$$ = $1;}
- | contents content
- {$$ = $1 + $2;}
- ;
-
-content
- : TAG
- {
- if (!yy.lexer.tagHandler) yy.lexer.tagHandler = function(tag) {return tag;};
- $$ = yy.lexer.tagHandler(yytext);
- }
- | WORD
- {
- if (!yy.lexer.wordHandler) yy.lexer.wordHandler = function(word) {return word;};
- $$ = yy.lexer.wordHandler(yytext);
- }
- | CHAR
- {
- if (!yy.lexer.charHandler) yy.lexer.charHandler = function(char) {return char;};
- $$ = yy.lexer.charHandler(yytext);
- }
- ;
diff --git a/examples/precedence.jison b/examples/precedence.jison
deleted file mode 100644
index ba1e488..0000000
--- a/examples/precedence.jison
+++ /dev/null
@@ -1,32 +0,0 @@
-
-/* description: Grammar showing precedence operators and semantic actions. */
-
-%lex
-%%
-\s+ {/* skip whitespace */}
-[0-9]+ {return 'NAT';}
-"+" {return '+';}
-"*" {return '*';}
-<<EOF>> {return 'EOF';}
-
-/lex
-
-%left '+'
-%left '*'
-
-%%
-
-S
- : e EOF
- {return $1;}
- ;
-
-e
- : e '+' e
- {$$ = [$1,'+', $3];}
- | e '*' e
- {$$ = [$1, '*', $3];}
- | NAT
- {$$ = parseInt(yytext);}
- ;
-
diff --git a/examples/reduce_conflict.jison b/examples/reduce_conflict.jison
deleted file mode 100644
index baed52b..0000000
--- a/examples/reduce_conflict.jison
+++ /dev/null
@@ -1,23 +0,0 @@
-
-/* description: Produces a reduce-reduce conflict unless using LR(1). */
-
-
-%start S
-
-%%
-
-S
- : a A c
- | a B d
- | b A d
- | b B c
- ;
-
-A
- : z
- ;
-
-B
- : z
- ;
-
diff --git a/examples/semwhitespace.jison b/examples/semwhitespace.jison
deleted file mode 100644
index 4878838..0000000
--- a/examples/semwhitespace.jison
+++ /dev/null
@@ -1,67 +0,0 @@
-/* Demonstrates use of semantic whitespace pseudo-tokens. */
-
-%start prog
-
-%ebnf
-
-%options token-stack
-
-%% /* language grammar */
-
-prog
- : proglist ENDOFFILE
- { console.log("AST: %j", $proglist); }
- ;
-
-proglist
- : proglist stmt
- { $proglist.push($stmt); $$ = $proglist; }
- | stmt
- { $$ = [$stmt]; }
- ;
-
-if_stmt
- : IF LPAREN expr RPAREN COLON stmt_block
- { $$ = [ "if", $expr, $stmt_block ]; }
- | IF LPAREN expr RPAREN COLON stmt_block ELSE COLON stmt_block
- { $$ = [ "if", $expr, $6, $9 ]; }
- ;
-
-print_stmt
- : PRINT STRING
- { $$ = ["print", $2]; }
- ;
-
-stmt
- : if_stmt
- | print_stmt
- ;
-
-stmt_list
- : stmt
- { $$ = ["stmt_list", $stmt]; }
- | stmt_list stmt
- { $stmt_list.push($stmt); $$ = $stmt_list; }
- ;
-
-stmt_block
- : INDENT stmt_list DEDENT
- { $$ = $stmt_list; }
- ;
-
-atom
- : ID
- { $$ = ["id", $1]; }
- | NATLITERAL
- { $$ = ["natlit", $1]; }
- | LPAREN expr RPAREN
- { $$ = ["expr", $2]; }
- ;
-
-expr
- : atom
- | expr PLUS atom
- { $expr.push(["plus", $atom]); $$ = $expr; }
- | expr MINUS atom
- { $expr.push(["minus", $atom]); $$ = $expr; }
- ;
diff --git a/examples/semwhitespace_ex.src b/examples/semwhitespace_ex.src
deleted file mode 100644
index 4d70d0f..0000000
--- a/examples/semwhitespace_ex.src
+++ /dev/null
@@ -1,12 +0,0 @@
-if (a+b):
- print "this line has trailing spaces"
- if (123-b):
- print "this one does not"
- else:
- print "will error until indentation corrected"
- print "correctly indented"
- print "another line, a couple trailing tabs"
- print "unexpected indent"
-
-print "end of program"
-
diff --git a/examples/semwhitespace_lex.jison b/examples/semwhitespace_lex.jison
deleted file mode 100644
index 72526db..0000000
--- a/examples/semwhitespace_lex.jison
+++ /dev/null
@@ -1,55 +0,0 @@
-/* Demonstrates semantic whitespace pseudo-tokens, INDENT/DEDENT. */
-
-id [a-zA-Z][a-zA-Z0-9]*
-spc [\t \u00a0\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u200b\u2028\u2029\u3000]
-
-%s EXPR
-
-%%
-"if" return 'IF';
-"else" return 'ELSE';
-"print" return 'PRINT';
-":" return 'COLON';
-"(" this.begin('EXPR'); return 'LPAREN';
-")" this.popState(); return 'RPAREN';
-\"[^\"]*\"|\'[^\']*\' yytext = yytext.substr(1,yyleng-2); return 'STRING';
-"+" return 'PLUS';
-"-" return 'MINUS';
-{id} return 'ID';
-\d+ return 'NATLITERAL';
-<<EOF>> return "ENDOFFILE";
-<INITIAL>\s*<<EOF>> %{
- // remaining DEDENTs implied by EOF, regardless of tabs/spaces
- var tokens = [];
-
- while (0 < _iemitstack[0]) {
- this.popState();
- tokens.unshift("DEDENT");
- _iemitstack.shift();
- }
-
- if (tokens.length) return tokens;
- %}
-[\n\r]+{spc}*/![^\n\r] /* eat blank lines */
-<INITIAL>[\n\r]{spc}* %{
- var indentation = yytext.length - yytext.search(/\s/) - 1;
- if (indentation > _iemitstack[0]) {
- _iemitstack.unshift(indentation);
- return 'INDENT';
- }
-
- var tokens = [];
-
- while (indentation < _iemitstack[0]) {
- this.popState();
- tokens.unshift("DEDENT");
- _iemitstack.shift();
- }
- if (tokens.length) return tokens;
- %}
-{spc}+ /* ignore all other whitespace */
-
-%%
-/* initialize the pseudo-token stack with 0 indents */
-_iemitstack = [0];
-
diff --git a/examples/tikiwikiparser.jison b/examples/tikiwikiparser.jison
deleted file mode 100755
index 8d79e49..0000000
--- a/examples/tikiwikiparser.jison
+++ /dev/null
@@ -1,211 +0,0 @@
-%lex
-
-PLUGIN_ID [A-Z]+
-INLINE_PLUGIN_ID [a-z]+
-SMILE [a-z]+
-
-%s bold box center colortext italic header6 header5 header4 header3 header2 header1 link strikethrough table titlebar underscore wikilink
-
-%%
-
-"{"{INLINE_PLUGIN_ID}.*?"}"
- %{
- yytext = parserlib.inlinePlugin(yytext);
- return 'INLINE_PLUGIN';
- %}
-
-"{"{PLUGIN_ID}"(".*?")}"
- %{
- yy.pluginStack = parserlib.stackPlugin(yytext, yy.pluginStack);
-
- if (parserlib.size(yy.pluginStack) == 1) {
- return 'PLUGIN_START';
- } else {
- return 'CONTENT';
- }
- %}
-
-"{"{PLUGIN_ID}"}"
- %{
- if (yy.pluginStack) {
- if (
- parserlib.size(yy.pluginStack) > 0 &&
- parserlib.substring(yytext, 1, -1) == yy.pluginStack[parserlib.size(yy.pluginStack) - 1].name
- ) {
- if (parserlib.size(yy.pluginStack) == 1) {
- yytext = yy.pluginStack[parserlib.size(yy.pluginStack) - 1];
- yy.pluginStack = parserlib.pop(yy.pluginStack);
- return 'PLUGIN_END';
- } else {
- yy.pluginStack = parserlib.pop(yy.pluginStack);
- return 'CONTENT';
- }
- }
- }
- return 'CONTENT';
- %}
-
-("~np~")
- %{
- yy.npStack = parserlib.push(yy.npStack, true);
- this.yy.npOn = true;
-
- return 'NP_START';
- %}
-
-("~/np~")
- %{
- this.yy.npStack = parserlib.pop(yy.npStack);
- if (parserlib.size(yy.npStack) < 1) yy.npOn = false;
- return 'NP_END';
- %}
-
-"---"
- %{
- yytext = parserlib.hr();
- return 'HORIZONTAL_BAR';
- %}
-
-"(:"{SMILE}":)"
- %{
- yytext = parserlib.substring(yytext, 2, -2);
- yytext = parserlib.smile(yytext);
- return 'SMILE';
- %}
-
-"[[".*?
- %{
- yytext = parserlib.substring(yytext, 2, -1);
- return 'CONTENT';
- %}
-
-<bold>[_][_] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'BOLD_END'); %}
-[_][_] %{ this.begin('bold'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'BOLD_START'); %}
-<box>[\^] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'BOX_END'); %}
-[\^] %{ this.begin('box'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'BOX_START'); %}
-<center>[:][:] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'CENTER_END'); %}
-[:][:] %{ this.begin('center'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'CENTER_START'); %}
-<colortext>[\~][\~] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'COLORTEXT_END'); %}
-[\~][\~][#] %{ this.begin('colortext'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'COLORTEXT_START'); %}
-<header6>[\n] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'HEADER6_END'); %}
-[\n]("!!!!!!") %{ this.begin('header6'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'HEADER6_START'); %}
-<header5>[\n] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'HEADER5_END'); %}
-[\n]("!!!!!") %{ this.begin('header5'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'HEADER5_START'); %}
-<header4>[\n] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'HEADER4_END'); %}
-[\n]("!!!!") %{ this.begin('header4'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'HEADER4_START'); %}
-<header3>[\n] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'HEADER3_END'); %}
-[\n]("!!!") %{ this.begin('header3'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'HEADER3_START'); %}
-<header2>[\n] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'HEADER2_END'); %}
-[\n]("!!") %{ this.begin('header2'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'HEADER2_START'); %}
-<header1>[\n] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'HEADER1_END'); %}
-[\n]("!") %{ this.begin('header1'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'HEADER1_START'); %}
-<italic>[']['] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'ITALIC_END'); %}
-[']['] %{ this.begin('italic'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'ITALIC_START'); %}
-<link>("]") %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'LINK_END'); %}
-("[") %{ this.begin('link'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'LINK_START'); %}
-<strikethrough>[-][-] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'STRIKETHROUGH_END'); %}
-[-][-] %{ this.begin('strikethrough'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'STRIKETHROUGH_START'); %}
-<table>[|][|] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'TABLE_END'); %}
-[|][|] %{ this.begin('table'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'TABLE_START'); %}
-<titlebar>[=][-] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'TITLEBAR_END'); %}
-[-][=] %{ this.begin('titlebar'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'TITLEBAR_START'); %}
-<underscore>[=][=][=] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'UNDERSCORE_END'); %}
-[=][=][=] %{ this.begin('underscore'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'UNDERSCORE_START'); %}
-<wikilink>[)][)] %{ this.popState(); return parserlib.npState(this.yy.npOn, 'CONTENT', 'WIKILINK_END'); %}
-[(][(] %{ this.begin('wikilink'); return parserlib.npState(this.yy.npOn, 'CONTENT', 'WIKILINK_START'); %}
-
-"<"(.|\n)*?">" return 'HTML'
-(.) return 'CONTENT'
-(\n)
- %{
- if (parserlib.npState(this.yy.npOn, false, true) == true) {
- yytext = parserlib.formatContent(yytext);
- }
-
- return 'CONTENT';
- %}
-
-<<EOF>> return 'EOF'
-
-/lex
-
-%%
-
-wiki
- : wiki_contents EOF
- {return $1;}
- ;
-
-wiki_contents
- :
- | contents
- {$$ = $1;}
- | wiki_contents plugin
- {$$ = parserlib.join($1, $2);}
- | wiki_contents plugin contents
- {$$ = parserlib.join($1, $2, $3);}
- ;
-
-plugin
- : INLINE_PLUGIN
- {$$ = parserlib.plugin($1);}
- | PLUGIN_START wiki_contents PLUGIN_END
- {
- $3.body = $2;
- $$ = parserlib.plugin($3);
- }
- ;
-
-contents
- : content
- {$$ = $1;}
- | contents content
- {$$ = parserlib.join($1, $2);}
- ;
-
-content
- : CONTENT
- {$$ = $1;}
- | HTML
- {$$ = parserlib.html($1);}
- | HORIZONTAL_BAR
- {$$ = $1;}
- | SMILE
- {$$ = $1;}
- | BOLD_START wiki_contents BOLD_END
- {$$ = parserlib.bold($2);}
- | BOX_START wiki_contents BOX_END
- {$$ = parserlib.box($2);}
- | CENTER_START wiki_contents CENTER_END
- {$$ = parserlib.center($2);}
- | COLORTEXT_START wiki_contents COLORTEXT_END
- {$$ = parserlib.colortext($2);}
- | ITALIC_START wiki_contents ITALIC_END
- {$$ = parserlib.italics($2);}
- | HEADER6_START wiki_contents HEADER6_END
- {$$ = parserlib.header6($2);}
- | HEADER5_START wiki_contents HEADER5_END
- {$$ = parserlib.header5($2);}
- | HEADER4_START wiki_contents HEADER4_END
- {$$ = parserlib.header4($2);}
- | HEADER3_START wiki_contents HEADER3_END
- {$$ = parserlib.header3($2);}
- | HEADER2_START wiki_contents HEADER2_END
- {$$ = parserlib.header2($2);}
- | HEADER1_START wiki_contents HEADER1_END
- {$$ = parserlib.header1($2);}
- | LINK_START wiki_contents LINK_END
- {$$ = parserlib.link($2);}
- | NP_START wiki_contents NP_END
- {$$ = $2;}
- | STRIKETHROUGH_START wiki_contents STRIKETHROUGH_END
- {$$ = parserlib.strikethrough($2);}
- | TABLE_START wiki_contents TABLE_END
- {$$ = parserlib.table($2);}
- | TITLEBAR_START wiki_contents TITLEBAR_END
- {$$ = parserlib.titlebar($2);}
- | UNDERSCORE_START wiki_contents UNDERSCORE_END
- {$$ = parserlib.underscore($2);}
- | WIKILINK_START wiki_contents WIKILINK_END
- {$$ = parserlib.wikilink($2);}
- ;
diff --git a/lib/jison.js b/lib/jison.js
index b47f80a..d078056 100755
--- a/lib/jison.js
+++ b/lib/jison.js
@@ -1359,13 +1359,9 @@ function parseError (str, hash) {
if (hash.recoverable) {
this.trace(str);
} else {
- function _parseError (msg, hash) {
- this.message = msg;
- this.hash = hash;
- }
- _parseError.prototype = Error;
-
- throw new _parseError(str, hash);
+ var error = new Error(str);
+ error.hash = hash;
+ throw error;
}
}
diff --git a/package.json b/package.json
index 69fe60a..4ca2e42 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"author": "Zach Carter <zach@carter.name> (http://zaa.ch)",
"name": "jison",
"description": "A parser generator with Bison's API",
- "version": "0.4.17",
+ "version": "0.4.18",
"license": "MIT",
"keywords": [
"jison",
Debdiff
File lists identical (after any substitutions)
No differences were encountered in the control files