def p_error(token): if token: message = "Unexpected token '{token}' at line {line} column {column}" line, column = lexer.lineno, compute_column(token) raise SyntacticError(message.format(token=token.type, line=line, column=column)) else: message = "Unexpected end of the input file" raise SyntacticError(message)
def p_error(token): if token: message = "Unexpected token '{token}' at line {line} column {column}" line, column = lexer.lineno, compute_column(token) raise SyntacticError( message.format(token=token.type, line=line, column=column)) else: message = "Unexpected end of the input file" raise SyntacticError(message)
def _escape(number): """ Recibe un entero representando el número correspondiente a un caracter ASCII y devuelve la secuencia de caracteres necesaria para representar este caracter en un literal de cadena de C. La secuencia de caracteres consiste en un backslash seguido de 3 dígitos octales. @type number: C{int} @param number: Entero representando el caracter ASCII. @rtype: C{str} @return: Representación válida del caracter en un literal de cadena de C. """ if 0 <= number <= 255: return r'\{0}'.format(oct(number)[-3:]) else: message = "Invalid string literal at line {line} column {column}" line, column = token.lexer.lineno, compute_column(token) raise SyntacticError(message.format(line=line, column=column))
def t_error(token): message = "Illegal character '{char}' at line {line} column {column}" line, column = token.lexer.lineno, compute_column(token) raise SyntacticError( message.format(char=token.value[0], line=line, column=column))
def t_error(token): message = "Illegal character '{char}' at line {line} column {column}" line, column = token.lexer.lineno, compute_column(token) raise SyntacticError(message.format(char=token.value[0], line=line, column=column))