This commit is contained in:
Aleksey Chichenkov 2019-01-29 13:14:08 +03:00
parent 28350b6258
commit 3a8974c334
2 changed files with 12 additions and 1 deletions

View File

@ -1,3 +1,6 @@
## Requires
- node
- npm
## Compile lemon-js ## Compile lemon-js
```bash ```bash

View File

@ -13,7 +13,9 @@
%code { %code {
&&REPLACER{parsers/filters/test_code_environment.js}&& &&REPLACER{parsers/filters/test_code_environment.js}&&
var _result = {}; var _result = {
error: false
};
var LemonJS = function(_input) { var LemonJS = function(_input) {
_result = Object.create(null); _result = Object.create(null);
var parser = new Parser(); var parser = new Parser();
@ -21,6 +23,10 @@
var token; var token;
var lexemes = []; var lexemes = [];
while (token = lexer.next()) { while (token = lexer.next()) {
if(_result.error) {
return { success: false }
}
if (token.error === 0) { if (token.error === 0) {
console.log("PARSE", token.lexeme); console.log("PARSE", token.lexeme);
parser.parse(parser["TOKEN_" + token.lexeme], token); parser.parse(parser["TOKEN_" + token.lexeme], token);
@ -30,6 +36,7 @@
parser.parse(); parser.parse();
return { return {
success: true,
tree: _result.root_node, tree: _result.root_node,
lexemes: lexemes lexemes: lexemes
}; };
@ -37,6 +44,7 @@
} }
%syntax_error { %syntax_error {
_result.error = "true";
console.log("Syntax error"); console.log("Syntax error");
} }