mirror of
https://github.com/lucaspalomodevelop/meshlab.git
synced 2026-03-16 09:34:36 +00:00
parser updated
This commit is contained in:
parent
5393f45871
commit
40cd62addc
File diff suppressed because it is too large
Load Diff
@ -7,98 +7,36 @@ class js_grammar
|
||||
public:
|
||||
enum VariousConstants {
|
||||
EOF_SYMBOL = 0,
|
||||
T_AND = 1,
|
||||
T_AND_AND = 2,
|
||||
T_AND_EQ = 3,
|
||||
T_BREAK = 4,
|
||||
T_CASE = 5,
|
||||
T_CATCH = 6,
|
||||
T_COLON = 7,
|
||||
T_COMMA = 8,
|
||||
T_CONST = 79,
|
||||
T_CONTINUE = 9,
|
||||
T_DEBUGGER = 80,
|
||||
T_DEFAULT = 10,
|
||||
T_DELETE = 11,
|
||||
T_DIVIDE_ = 12,
|
||||
T_DIVIDE_EQ = 13,
|
||||
T_DO = 14,
|
||||
T_DOT = 15,
|
||||
T_ELSE = 16,
|
||||
T_EQ = 17,
|
||||
T_EQ_EQ = 18,
|
||||
T_EQ_EQ_EQ = 19,
|
||||
T_FALSE = 78,
|
||||
T_FINALLY = 20,
|
||||
T_FOR = 21,
|
||||
T_FUNCTION = 22,
|
||||
T_GE = 23,
|
||||
T_GT = 24,
|
||||
T_GT_GT = 25,
|
||||
T_GT_GT_EQ = 26,
|
||||
T_GT_GT_GT = 27,
|
||||
T_GT_GT_GT_EQ = 28,
|
||||
T_IDENTIFIER = 29,
|
||||
T_IF = 30,
|
||||
T_IN = 31,
|
||||
T_INSTANCEOF = 32,
|
||||
T_LBRACE = 33,
|
||||
T_LBRACKET = 34,
|
||||
T_LE = 35,
|
||||
T_LPAREN = 36,
|
||||
T_LT = 37,
|
||||
T_LT_LT = 38,
|
||||
T_LT_LT_EQ = 39,
|
||||
T_MINUS = 40,
|
||||
T_MINUS_EQ = 41,
|
||||
T_MINUS_MINUS = 42,
|
||||
T_NEW = 43,
|
||||
T_NOT = 44,
|
||||
T_NOT_EQ = 45,
|
||||
T_NOT_EQ_EQ = 46,
|
||||
T_NULL = 76,
|
||||
T_NUMERIC_LITERAL = 81,
|
||||
T_OR = 47,
|
||||
T_OR_EQ = 48,
|
||||
T_OR_OR = 49,
|
||||
T_PLUS = 50,
|
||||
T_PLUS_EQ = 51,
|
||||
T_PLUS_PLUS = 52,
|
||||
T_QUESTION = 53,
|
||||
T_RBRACE = 54,
|
||||
T_RBRACKET = 55,
|
||||
T_REMAINDER = 56,
|
||||
T_REMAINDER_EQ = 57,
|
||||
T_RESERVED_WORD = 82,
|
||||
T_RETURN = 58,
|
||||
T_RPAREN = 59,
|
||||
T_SEMICOLON = 60,
|
||||
T_STAR = 61,
|
||||
T_STAR_EQ = 62,
|
||||
T_STRING_LITERAL = 63,
|
||||
T_SWITCH = 64,
|
||||
T_THIS = 65,
|
||||
T_THROW = 66,
|
||||
T_TILDE = 67,
|
||||
T_TRUE = 77,
|
||||
T_TRY = 68,
|
||||
T_TYPEOF = 69,
|
||||
T_VAR = 70,
|
||||
T_VOID = 71,
|
||||
T_WHILE = 72,
|
||||
T_WITH = 73,
|
||||
T_XOR = 74,
|
||||
T_XOR_EQ = 75,
|
||||
T_COLON = 1,
|
||||
T_COMMA = 2,
|
||||
T_CONST = 19,
|
||||
T_DOT = 3,
|
||||
T_EQ = 4,
|
||||
T_FUNCTION = 5,
|
||||
T_IDENTIFIER = 6,
|
||||
T_LBRACE = 7,
|
||||
T_LBRACKET = 8,
|
||||
T_LPAREN = 9,
|
||||
T_NEW = 10,
|
||||
T_NULL = 17,
|
||||
T_NUMERIC_LITERAL = 20,
|
||||
T_RBRACE = 11,
|
||||
T_RBRACKET = 12,
|
||||
T_RPAREN = 13,
|
||||
T_SEMICOLON = 14,
|
||||
T_STRING_LITERAL = 15,
|
||||
T_THIS = 16,
|
||||
T_VAR = 18,
|
||||
|
||||
ACCEPT_STATE = 236,
|
||||
RULE_COUNT = 259,
|
||||
STATE_COUNT = 458,
|
||||
TERMINAL_COUNT = 83,
|
||||
NON_TERMINAL_COUNT = 88,
|
||||
ACCEPT_STATE = 3,
|
||||
RULE_COUNT = 62,
|
||||
STATE_COUNT = 107,
|
||||
TERMINAL_COUNT = 21,
|
||||
NON_TERMINAL_COUNT = 36,
|
||||
|
||||
GOTO_INDEX_OFFSET = 458,
|
||||
GOTO_INFO_OFFSET = 1442,
|
||||
GOTO_CHECK_OFFSET = 1442
|
||||
GOTO_INDEX_OFFSET = 107,
|
||||
GOTO_INFO_OFFSET = 109,
|
||||
GOTO_CHECK_OFFSET = 109
|
||||
};
|
||||
|
||||
static const char *const spell [];
|
||||
|
||||
@ -25,85 +25,84 @@ icst ({dec}|0{oct}*|0[xX]{hex}+)
|
||||
|
||||
%%
|
||||
|
||||
"&&" {return T_AND_AND;}
|
||||
"&=" {return T_AND_EQ;}
|
||||
"&" {return T_AND;}
|
||||
"break" {return T_BREAK;}
|
||||
"case" {return T_CASE;}
|
||||
"catch" {return T_CATCH;}
|
||||
"&&" {}
|
||||
"&=" {}
|
||||
"&" {}
|
||||
"break" {}
|
||||
"case" {}
|
||||
"catch" {}
|
||||
":" {return T_COLON;}
|
||||
"," {return T_COMMA;}
|
||||
"continue" {return T_CONTINUE;}
|
||||
"default" {return T_DEFAULT;}
|
||||
"delete" {return T_DELETE;}
|
||||
"/=" {return T_DIVIDE_EQ;}
|
||||
"/" {return T_DIVIDE_;}
|
||||
"do" {return T_DO;}
|
||||
"continue" {}
|
||||
"default" {}
|
||||
"delete" {}
|
||||
"/=" {}
|
||||
"/" {}
|
||||
"do" {}
|
||||
"." {return T_DOT;}
|
||||
"else" {return T_ELSE;}
|
||||
"===" {return T_EQ_EQ_EQ;}
|
||||
"==" {return T_EQ_EQ;}
|
||||
"else" {}
|
||||
"===" {}
|
||||
"==" {}
|
||||
"=" {return T_EQ;}
|
||||
"finally" {return T_FINALLY;}
|
||||
"for" {return T_FOR;}
|
||||
"finally" {}
|
||||
"for" {}
|
||||
"function" {return T_FUNCTION;}
|
||||
">>>=" {return T_GT_GT_GT_EQ;}
|
||||
">>=" {return T_GT_GT_EQ;}
|
||||
">=" {return T_GE;}
|
||||
">>" {return T_GT_GT;}
|
||||
">" {return T_GT;}
|
||||
"if" {return T_IF;}
|
||||
"in" {return T_IN;}
|
||||
"instanceof" {return T_INSTANCEOF;}
|
||||
"{" {return T_LBRACE;}
|
||||
"[" {return T_LBRACKET;}
|
||||
"<<=" {return T_LT_LT_EQ;}
|
||||
"<<" {return T_LT_LT;}
|
||||
"<=" {return T_LE;}
|
||||
"<" {return T_LT;}
|
||||
">>>=" {}
|
||||
">>=" {}
|
||||
">=" {}
|
||||
">>" {}
|
||||
">" {}
|
||||
"if" {}
|
||||
"in" {}
|
||||
"instanceof" {}
|
||||
"{" {return T_LBRACKET;}
|
||||
"[" {return T_LBRACE;}
|
||||
"<<=" {}
|
||||
"<<" {}
|
||||
"<=" {}
|
||||
"<" {}
|
||||
"(" {return T_LPAREN;}
|
||||
"--" {return T_MINUS_MINUS;}
|
||||
"-=" {return T_MINUS_EQ;}
|
||||
"-" {return T_MINUS;}
|
||||
"--" {}
|
||||
"-=" {}
|
||||
"-" {}
|
||||
"new" {return T_NEW;}
|
||||
"!==" {return T_NOT_EQ_EQ;}
|
||||
"!=" {return T_NOT_EQ;}
|
||||
"!" {return T_NOT;}
|
||||
"|=" {return T_OR_EQ;}
|
||||
"||" {return T_OR_OR;}
|
||||
"|" {return T_OR;}
|
||||
"+=" {return T_PLUS_EQ;}
|
||||
"++" {return T_PLUS_PLUS;}
|
||||
"+" {return T_PLUS;}
|
||||
"?" {return T_QUESTION;}
|
||||
"}" {return T_RBRACE;}
|
||||
"]" {return T_RBRACKET;}
|
||||
"%=" {return T_REMAINDER_EQ;}
|
||||
"%" {return T_REMAINDER;}
|
||||
"return" {return T_RETURN;}
|
||||
"!==" {}
|
||||
"!=" {}
|
||||
"!" {}
|
||||
"|=" {}
|
||||
"||" {}
|
||||
"|" {}
|
||||
"+=" {}
|
||||
"++" {}
|
||||
"+" {}
|
||||
"?" {}
|
||||
"}" {return T_RBRACKET;}
|
||||
"]" {return T_RBRACE;}
|
||||
"%=" {}
|
||||
"%" {}
|
||||
"return" {}
|
||||
")" {return T_RPAREN;}
|
||||
";" {return T_SEMICOLON;}
|
||||
"*=" {return T_STAR_EQ;}
|
||||
"*" {return T_STAR;}
|
||||
"*=" {}
|
||||
"*" {}
|
||||
"/"([^"\\]|\\.)*"/" {return T_STRING_LITERAL;}
|
||||
"switch" {return T_SWITCH;}
|
||||
"switch" {}
|
||||
"this" {return T_THIS;}
|
||||
"throw" {return T_THROW;}
|
||||
"~" {return T_TILDE;}
|
||||
"try" {return T_TRY;}
|
||||
"typeof" {return T_TYPEOF;}
|
||||
"throw" {}
|
||||
"~" {}
|
||||
"try" {}
|
||||
"typeof" {}
|
||||
"var" {return T_VAR;}
|
||||
"void" {return T_VOID;}
|
||||
"while" {return T_WHILE;}
|
||||
"with" {return T_WITH;}
|
||||
"^=" {return T_XOR_EQ;}
|
||||
"^" {return T_XOR;}
|
||||
"void" {}
|
||||
"while" {}
|
||||
"with" {}
|
||||
"^=" {}
|
||||
"^" {}
|
||||
"null" {return T_NULL;}
|
||||
"true" {return T_TRUE;}
|
||||
"false" {return T_FALSE;}
|
||||
"true" {}
|
||||
"false" {}
|
||||
"const" {return T_CONST;}
|
||||
"debugger" {return T_DEBUGGER;}
|
||||
"reserved" {return T_RESERVED_WORD;}
|
||||
|
||||
{icst} {yyval.i = QString(yytext).toInt();return T_NUMERIC_LITERAL;}
|
||||
{icst}[uU] {yyval.u = QString(yytext).toUInt();return T_NUMERIC_LITERAL;}
|
||||
{icst}[uU][lL] {yyval.ul = QString(yytext).toULong();return T_NUMERIC_LITERAL;}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,45 +1,37 @@
|
||||
|
||||
#line 90 "js_parser.g"
|
||||
|
||||
#ifndef JS_PARSER_H
|
||||
#define JS_PARSER_H
|
||||
|
||||
#include "qparser.h"
|
||||
#include <QtCore>
|
||||
#include "js_grammar_p.h"
|
||||
|
||||
union UnionValue
|
||||
{
|
||||
int i;
|
||||
unsigned u;
|
||||
unsigned long ul;
|
||||
unsigned long long ull;
|
||||
long l;
|
||||
double d;
|
||||
float f;
|
||||
const QString *s;
|
||||
};
|
||||
|
||||
class JSParser: public QParser<JSParser, js_grammar,UnionValue>
|
||||
{
|
||||
public:
|
||||
JSParser();
|
||||
int nextToken();
|
||||
void consumeRule(int ruleno);
|
||||
const QString *insert(const QString &s);
|
||||
|
||||
protected:
|
||||
QSet<QString> string_repository;
|
||||
QSet<const QString*> types;
|
||||
|
||||
};
|
||||
|
||||
#endif // JS_PARSER_H
|
||||
|
||||
#line 192 "js_parser.g"
|
||||
|
||||
#define Q_SCRIPT_REGEXPLITERAL_RULE1 7
|
||||
|
||||
#line 201 "js_parser.g"
|
||||
|
||||
#define Q_SCRIPT_REGEXPLITERAL_RULE2 8
|
||||
#line 28 "js_parser.g"
|
||||
|
||||
#ifndef JS_PARSER_H
|
||||
#define JS_PARSER_H
|
||||
|
||||
#include "qparser.h"
|
||||
#include <QtCore>
|
||||
#include "js_grammar_p.h"
|
||||
|
||||
union UnionValue
|
||||
{
|
||||
int i;
|
||||
unsigned u;
|
||||
unsigned long ul;
|
||||
unsigned long long ull;
|
||||
long l;
|
||||
double d;
|
||||
float f;
|
||||
const QString *s;
|
||||
};
|
||||
|
||||
class JSParser: public QParser<JSParser, js_grammar,UnionValue>
|
||||
{
|
||||
public:
|
||||
JSParser();
|
||||
int nextToken();
|
||||
void consumeRule(int ruleno);
|
||||
const QString *insert(const QString &s);
|
||||
|
||||
protected:
|
||||
QSet<QString> string_repository;
|
||||
QSet<const QString*> types;
|
||||
QSet<QString> functions;
|
||||
};
|
||||
|
||||
#endif // JS_PARSER_H
|
||||
|
||||
@ -98,7 +98,7 @@ bool QParser<_Parser, _Table, _Value>::parse()
|
||||
|
||||
else if (act < 0) {
|
||||
int r = - act - 1;
|
||||
qDebug() << "reducing using rule: " << spell[rule_info[rule_index[r]]] << "\n";
|
||||
//qDebug() << "reducing using rule: " << spell[rule_info[rule_index[r]]] << "\n";
|
||||
d->tos -= _Table::rhs[r];
|
||||
act = d->stateStack[d->tos++];
|
||||
consumeRule(r);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user