def assign(p): assert p[0].gettokentype() == "ID" return ast.Assignment(ast.IdentifierReference(p[0].getstr()), p[2])
def read_statement(p): assert p[2].gettokentype() == "ID" return ast.ReadStatement(ast.IdentifierReference(p[2].getstr()))
def string_variable_indexing(p): index = p[2].value variable = ast.IdentifierReference(p[0].getstr()) return ast.IndexOperation(variable, index)
def factor_id(p): return ast.IdentifierReference(p[0].getstr())
def factor_id(p): # type: (List[Token]) -> ast.IdentifierReference return ast.IdentifierReference(p[0].getstr())