Ejemplo n.º 1
0
def p_TOK_TUPLE_OBJECT(p):
    '''TOK_TUPLE_OBJECT : "(" VALUES_EXPR ")"
    | "(" ")"'''
    if len(p) == 4:
        p[0] = ASTNode.Node(TK.TOK_TUPLE,None,p[2])
    else:
        p[0] = ASTNode.Node(TK.TOK_TUPLE,None,None)
Ejemplo n.º 2
0
def p_TOK_SORT(p):
    '''TOK_SORT : LEFT_VALUE_EXPR
    | LEFT_VALUE_EXPR SORT_MODE'''
    if len(p) == 2:
        p[0] = ASTNode.Node(TK.TOK_SORT, None, [p[1]])
    else:
        p[0] = ASTNode.Node(TK.TOK_SORT, None, [p[1], p[2]])
Ejemplo n.º 3
0
def p_TOK_LIST_OBJECT(p):
    '''TOK_LIST_OBJECT : "[" VALUES_EXPR "]"
    | "[" "]"'''
    if len(p) == 4:
        p[0] = ASTNode.Node(TK.TOK_LIST,None,p[2])
    else:
        p[0] = ASTNode.Node(TK.TOK_LIST,None,None)
Ejemplo n.º 4
0
def p_TOK_SELEXPR(p):
    '''TOK_SELEXPR : LEFT_VALUE_EXPR
    | LEFT_VALUE_EXPR AS VALUE_EXPR'''
    if len(p) == 2:
        p[0] = ASTNode.Node(TK.TOK_SELEXPR, None, [p[1]])
    else:
        p[0] = ASTNode.Node(TK.TOK_SELEXPR, None, [p[1], p[3]])
Ejemplo n.º 5
0
def p_TOK_COLUMN_DEFINE(p):
    '''TOK_COLUMN_DEFINE : WORD COLUMN_TYPE
    | WORD COLUMN_TYPE TOK_COLUMN_OPTIONS'''
    if len(p) == 3:
        p[0] = ASTNode.Node(TK.TOK_COLUMN_DEFINE, p[1], [p[2]])
    else:
        p[0] = ASTNode.Node(TK.TOK_COLUMN_DEFINE, p[1], [p[2], p[3]])
Ejemplo n.º 6
0
def p_TOK_TABLE_COLS(p):
    '''TOK_TABLE_COLS : "(" ")"
    | "(" TOK_COLUMNS_DEFINE ")"'''
    if len(p) == 3:
        p[0] = ASTNode.Node(TK.TOK_TABLE_COLUMNS, None, None)
    else:
        p[0] = ASTNode.Node(TK.TOK_TABLE_COLUMNS, None, p[2])
Ejemplo n.º 7
0
def p_TOK_TABLE_METAS(p):
    '''TOK_TABLE_METAS : "(" ")"
    | "(" TOK_METAS_DEF ")"'''
    if len(p) == 3:
        p[0] = ASTNode.Node(TK.TOK_TABLE_METAS, None, None)
    else:
        p[0] = ASTNode.Node(TK.TOK_TABLE_METAS, None, p[2])
Ejemplo n.º 8
0
def p_TOK_EXPRESSION(p):
    '''TOK_EXPRESSION : TOK_EXPRESSION_LEFT COMPARE_TYPE_EXPR TOK_EXPRESSION_RIGHT'''
    if p[2] == '!=':
        expression = ASTNode.Node(TK.TOK_COMPARE, '=', [p[1], p[3]])
        p[0] = ASTNode.Node(TK.TOK_REVERSED, 'NOT'.lower(), [expression])
    else:
        p[0] = ASTNode.Node(TK.TOK_COMPARE, p[2], [p[1], p[3]])
Ejemplo n.º 9
0
def p_TOK_ISNULL(p):
    '''TOK_ISNULL : VALUE_EXPR IS NULL
    | VALUE_EXPR IS NOT NULL'''
    if len(p) == 4:
        p[0] = ASTNode.Node(TK.TOK_FUNCTION, 'ISNULL', [p[1]])
    else:
        expression = ASTNode.Node(TK.TOK_FUNCTION, 'ISNULL', [p[1]])
        p[0] = ASTNode.Node(TK.TOK_REVERSED, 'NOT'.lower(), [expression])
Ejemplo n.º 10
0
def p_TOK_VALUE(p):
    '''TOK_VALUE : WORD
    | QUOTE_STRING
    | NUMBER
    | DQUOTE_STRING
    | "*"'''
    p[0] = ASTNode.Node(TK.TOK_VALUE, p[1], None)
Ejemplo n.º 11
0
def p_TOK_DELETE(p):
    '''TOK_DELETE : DELETE FROM TOK_TABLE_NAME WHERE TOK_WHERE'''
    p[0] = ASTNode.Node(TK.TOK_DELETE,None,[p[3]] + [p[5]])    
    
    
    
    
Ejemplo n.º 12
0
def p_TOK_GROUPBY(p):
    '''TOK_GROUPBY : LEFT_VALUES_EXPR'''
    p[0] = ASTNode.Node(TK.TOK_GROUPBY, None, p[1])
Ejemplo n.º 13
0
def p_SORT_MODE(p):
    '''SORT_MODE : ASC
    | DESC'''
    p[0] = ASTNode.Node(TK.TOK_SORT_MODE, p[1], None)
Ejemplo n.º 14
0
def p_TOK_ORDERBY(p):
    '''TOK_ORDERBY : TOK_SORTS'''
    p[0] = ASTNode.Node(TK.TOK_ORDERBY, None, p[1])
Ejemplo n.º 15
0
def p_LIMIT_EXPR(p):
    '''LIMIT_EXPR : NUMBER'''
    p[0] = ASTNode.Node(TK.TOK_VALUE, p[1], None)
Ejemplo n.º 16
0
def p_DESC_TABLE(p):
    '''TOK_DESC_TABLE : DESC TOK_TABLE_NAME'''
    p[0] = ASTNode.Node(TK.TOK_DESC_TABLE, None, [p[2]])
Ejemplo n.º 17
0
def p_TOK_UPSERT_INTO(p):
    '''TOK_UPSERT_INTO : UPSERT TOK_TABLE_NAME SET TOK_SET_COLUMNS_CLAUSE WHERE TOK_WHERE'''
    p[0] = ASTNode.Node(TK.TOK_UPSERT_INTO, None, [p[2]] + [p[4]] + [p[6]])
Ejemplo n.º 18
0
def p_TOK_UPDATE(p):
    '''TOK_UPDATE : UPDATE TOK_TABLE_NAME SET TOK_SET_COLUMNS_CLAUSE WHERE TOK_WHERE'''
    p[0] = ASTNode.Node(TK.TOK_UPDATE, None, [p[2]] + [p[4]] + [p[6]])
Ejemplo n.º 19
0
def p_TOK_INSERT_ROW(p):
    '''TOK_VALUE_ROW : "(" RIGHT_VALUES_EXPR ")" '''
    p[0] = ASTNode.Node(TK.TOK_INSERT_ROW, None, p[2])
Ejemplo n.º 20
0
def p_TOK_INSERT_INTO(p):
    '''TOK_INSERT_INTO : INSERT INTO TOK_TABLE_NAME TOK_INSERT_COLUMNS VALUES TOK_VALUE_ROW'''
    p[0] = ASTNode.Node(TK.TOK_INSERT_INTO, None, [p[3]] + [p[4]] + [p[6]])
Ejemplo n.º 21
0
def p_TOK_INSERT_COLUMNS(p):
    '''TOK_INSERT_COLUMNS : TOK_TUPLE_OBJECT'''
    p[0] = ASTNode.Node(TK.TOK_INSERT_COLUMNS, None, p[1].get_children())
Ejemplo n.º 22
0
def p_TOK_FROM(p):
    '''TOK_FROM : TOK_TABLE_NAME'''
    p[0] = ASTNode.Node(TK.TOK_FROM, None, [p[1]])
Ejemplo n.º 23
0
def p_TOK_BULK_INTO(p):
    '''TOK_BULK_INTO : BULK INTO TOK_TABLE_NAME TOK_INSERT_COLUMNS VALUES INSERT_ROWS_EXPR'''

    rows = ASTNode.Node(TK.TOK_INSERT_ROWS, None, p[6])

    p[0] = ASTNode.Node(TK.TOK_BULK_INTO, None, [p[3]] + [p[4]] + [rows])
Ejemplo n.º 24
0
def p_TOK_FROM_WITH_ROUTING(p):
    '''TOK_FROM : TOK_TABLE_NAME "@" TOK_VALUE'''
    p[0] = ASTNode.Node(TK.TOK_FROM, None, [p[1], p[3]])
Ejemplo n.º 25
0
def p_TOK_SET_COLUMNS(p):
    '''TOK_SET_COLUMNS_CLAUSE : KV_ELEMENTS_EXPR'''
    p[0] = ASTNode.Node(TK.TOK_SET_COLUMNS_CLAUSE, None, p[1])
Ejemplo n.º 26
0
def p_TOK_WHRER(p):
    '''TOK_WHERE : EXPRESSION_EXPR'''
    p[0] = ASTNode.Node(TK.TOK_WHERE, None, [p[1]])
Ejemplo n.º 27
0
def p_SHOW_TABLES(p):
    '''TOK_SHOW_TABLES : SHOW TABLES'''
    p[0] = ASTNode.Node(TK.TOK_SHOW_TABLES, None, None)
Ejemplo n.º 28
0
def p_TOK_SELECT(p):
    '''TOK_SELECT : TOK_SELEXPRS'''
    p[0] = ASTNode.Node(TK.TOK_SELECT, None, p[1])
Ejemplo n.º 29
0
def p_DROP_TABLE(p):
    '''TOK_DROP_TABLE : DROP TABLE TOK_TABLE_NAME'''
    p[0] = ASTNode.Node(TK.TOK_DROP_TABLE, None, [p[3]])
Ejemplo n.º 30
0
def p_TOK_LIMIT(p):
    '''TOK_LIMIT : LIMITS_EXPR'''
    p[0] = ASTNode.Node(TK.TOK_LIMIT, None, p[1])