コード例 #1
0
ファイル: lexer.py プロジェクト: ArielXL/cool-compiler-2021
 def t_error(self, token):
     self.update_column(token)
     error_text = LexicographicError.UNKNOWN_TOKEN % token.value[0]
     line = token.lineno
     column = token.column
     self.errors.append(LexicographicError(line, column, error_text))
     token.lexer.skip(1)
コード例 #2
0
ファイル: lexer.py プロジェクト: ArielXL/cool-compiler-2021
 def t_STRINGS_nill(self, token):
     r'\0'
     self.update_column(token)
     error_text = LexicographicError.NULL_STRING
     line = token.lineno
     column = token.column
     self.errors.append(LexicographicError(line, column, error_text))
コード例 #3
0
ファイル: lexer.py プロジェクト: ArielXL/cool-compiler-2021
 def t_COMMENTS_eof(self, token):
     self.update_column(token)
     if token.lexer.level > 0:
         error_text = LexicographicError.EOF_COMMENT
         line = token.lineno
         column = token.column
         self.errors.append(LexicographicError(line, column, error_text))
コード例 #4
0
    def t_strings_newline(self, t):
        r'\n'
        t.lexer.lineno += 1
        self.compute_column(t)

        t.lexer.linestart = t.lexer.lexpos

        if not t.lexer.backslash:
            self.errors.append(LexicographicError(
                'Undeterminated string constant', t.lineno, t.column))
            t.lexer.begin('INITIAL')
コード例 #5
0
ファイル: lexer.py プロジェクト: lorainemg/cool-compiler-2020
    def t_strings_newline(self, t):
        r'\n'
        t.lexer.lineno += 1
        self._update_column(t)

        t.lexer.linestart = t.lexer.lexpos

        if not t.lexer.backslash:
            error_text = LexicographicError.UNDETERMINATED_STRING
            self.errors.append(
                LexicographicError(error_text, t.lineno, t.column))
            t.lexer.begin('INITIAL')
コード例 #6
0
ファイル: lexer.py プロジェクト: ArielXL/cool-compiler-2021
    def t_STRINGS_newline(self, token):
        r'\n'
        token.lexer.lineno += 1
        self.update_column(token)
        token.lexer.linestart = token.lexer.lexpos

        if not token.lexer.backslash:
            error_text = LexicographicError.UNTERMINATED_STRING
            line = token.lineno
            column = token.column
            self.errors.append(LexicographicError(line, column, error_text))
            token.lexer.begin('INITIAL')
コード例 #7
0
ファイル: lexer.py プロジェクト: lorainemg/cool-compiler-2020
    def t_strings_nill(self, t):
        r'\0'
        error_text = LexicographicError.NULL_STRING
        self._update_column(t)

        self.errors.append(LexicographicError(error_text, t.lineno, t.column))
コード例 #8
0
ファイル: lexer.py プロジェクト: lorainemg/cool-compiler-2020
 def t_comments_eof(self, t):
     self._update_column(t)
     if t.lexer.level > 0:
         error_text = LexicographicError.EOF_COMMENT
         self.errors.append(
             LexicographicError(error_text, t.lineno, t.column))
コード例 #9
0
ファイル: lexer.py プロジェクト: lorainemg/cool-compiler-2020
    def t_error(self, t):
        self._update_column(t)
        error_text = LexicographicError.UNKNOWN_TOKEN % t.value[0]

        self.errors.append(LexicographicError(error_text, t.lineno, t.column))
        t.lexer.skip(1)
コード例 #10
0
ファイル: lexer.py プロジェクト: lorainemg/cool-compiler-2020
    def t_strings_eof(self, t):
        self._update_column(t)

        error_text = LexicographicError.EOF_STRING
        self.errors.append(LexicographicError(error_text, t.lineno, t.column))
コード例 #11
0
 def t_strings_nill(self, t):
     r'\0'
     self.compute_column(t)
     self.errors.append(LexicographicError(
         'Null caracter in string', t.lineno, t.column))
コード例 #12
0
 def t_comments_eof(self, t):
     self.compute_column(t)
     if t.lexer.level > 0:
         self.errors.append(LexicographicError(
             "EOF in comment", t.lineno, t.column))
コード例 #13
0
 def t_error(self, t):
     self.compute_column(t)
     self.errors.append(LexicographicError(
         f'ERROR \"{t.value[0]}\"', t.lineno, t.column))
     t.lexer.skip(1)
コード例 #14
0
 def t_strings_eof(self, t):
     self.compute_column(t)
     self.errors.append(LexicographicError(
         'EOF in string constant', t.lineno, t.column))
コード例 #15
0
ファイル: lexer.py プロジェクト: ArielXL/cool-compiler-2021
 def t_STRINGS_eof(self, token):
     self.update_column(token)
     error_text = LexicographicError.EOF_STRING
     line = token.lineno
     column = token.column
     self.errors.append(LexicographicError(line, column, error_text))