attr : NAME '.' NAME
            | NAME '.' '*'

def p_attr(self,t):
    """attr : NAME '.' NAME
            | NAME '.' '*'
    """
    # careful: sqex.infer_columns relies on AttrX not containing anything but a name
    t[0] = AttrX(NameX(t[1]), AsterX() if t[3]=='*' else NameX(t[3]))