Exemple #1
0
def t_FIELD(t):
    r"\w+(?=\s*:)"
    try:
        type = keywords_dict[t.value]
    except KeyError:
        raise ParseError("Unrecognized keyword: %r" % (t.value, ), t)
    else:
        t.type = type
        if type in line_keywords:
            t_begin_insidestring(t)
        elif type in multilines_keywords:
            # FIXME: we differentiate between top Description (accepting multiline)
            # and description within flag block (where we cannot currently accept
            # multilines).
            if t.lexpos >= 1:
                if R_NEWLINE.match(t.lexer.lexdata[t.lexpos - 1]):
                    t_begin_insidemstring(t)
                else:
                    t_begin_insidestring(t)
            else:
                t_begin_insidemstring(t)
        elif type in comma_line_keywords:
            t_begin_inside_scommalistfirstline(t)
        elif type in comma_word_keywords:
            t_begin_inside_wcommalistfirstline(t)
        else:
            t_begin_inside_word(t)
        return t
Exemple #2
0
def p_error(p):
    if p is None:
        raise InternalBentoError(
            "Unknown parsing error (parser/lexer bug ? Please report this with your bento.info)"
        )
    else:
        msg = "yacc: Syntax error at line %d, Token(%s, %r)" % \
                (p.lineno, p.type, p.value)
        if hasattr(p.lexer, "lexdata"):
            data = p.lexer.lexdata.splitlines()
            msg += "\n\t%r" % (data[p.lineno - 1], )
        raise ParseError(msg, p)
Exemple #3
0
def p_error(p):
    if p is None:
        raise InternalBentoError(
            "Unknown parsing error (parser/lexer bug ? Please report this with your bento.info)"
        )
    else:
        msg = "yacc: Syntax error at line %d, Token(%s, %r)" % \
                (p.lineno, p.type, p.value)
        if hasattr(p.lexer, "lexdata"):
            raw_data = p.lexer.lexdata
            data = raw_data.splitlines()
            line_lexpos = sum(len(line) + 1 for line in data[:p.lineno - 1])
            inline_lexpos = p.lexpos - line_lexpos
            msg += "\n%s" % (data[p.lineno - 1], )
            msg += "\n%s" % (" " * inline_lexpos + "^", )
        raise ParseError(msg, p)
Exemple #4
0
def t_insidescommalistfirstline_error(t):
    raise ParseError(
        "Illegal character (inside scommalistfirstline state) '%s'" %
        t.value[0], t)
Exemple #5
0
def t_insidewcommalist_error(t):
    raise ParseError(
        "Illegal character (inside wcommalist state) '%s'" % t.value[0], t)
Exemple #6
0
def t_insidemstringnotcontinued_error(t):
    raise ParseError(
        "Illegal character (inside_mstringnotcontinued state) '%s'" %
        t.value[0], t)
Exemple #7
0
def t_insidemstring_error(t):
    raise ParseError(
        "Illegal character (insidemstring state) '%s'" % t.value[0], t)
Exemple #8
0
def t_insideword_error(t):
    raise ParseError("Illegal character (inside word state) '%s'" % t.value[0],
                     t)
Exemple #9
0
def t_error(t):
    raise ParseError("Illegal character '%s'" % t.value[0], t)