void Parser::aql_stmt() { if (tokens[look].type == CREATE) { create_stmt(); } else { output_stmt(); } }
void Parser::stmt() { lookahead = lex->getNextLex(); if (lookahead=="EOF") return; switch (lookahead[0]) { case 'C': create_stmt(); break; case 'I': insert_stmt(); break; case 'D': delete_stmt(); break; case 'S': query_stmt(); break; default: throw("Lexer error at line " + Data::toStr(lex->getLine())); } }
const Statement &ssql_stmt() { if (lookahead == CREATE) { return create_stmt(); } else if (lookahead == INSERT) { return insert_stmt(); } else if (lookahead == DELETE) { return delete_stmt(); } else if (lookahead == SELECT) { return query_stmt(); } else { throw ParseError("Syntax error"); } }