Exemple #1
0
 def default(self, line):
     lines = line.split('\\n')
     lexeme_lines = [lex_line(line) for line in lines]
     lexemes = []
     for i, ln in enumerate(lexeme_lines):
         lexemes += ln
         if i < len(lexeme_lines) - 1:
             lexemes.append(NEWLINE)
     sppf = GRAMMAR.parse_rule(self.rule, lexemes)
     print(sppf)
Exemple #2
0
 def _lex_text(self, text: str) -> List[vl.Lexeme]:
     if self.multiline:
         return [vl.NEWLINE, vl.INDENT
                 ] + vl.lex_lines(text)[:-1] + [vl.DEDENT]
     else:
         return vl.lex_line(text)
Exemple #3
0
 def _single_line(self, line):
     if not line:
         return
     lexemes = vl.lex_line(line)
     self.parse(lexemes)
Exemple #4
0
def test_commas(line: str, correct_lexemes: List[vl.Lexeme]):
    assert vl.lex_line(line) == correct_lexemes
Exemple #5
0
 def default(self, line):
     lexemes = vl.lex_line(line)
     print(lexemes)
Exemple #6
0
def test_pattern(line: str, tree: AST):
    lexemes = lex_line(line)
    run_test('pattern', tree, lexemes, [], [])
Exemple #7
0
def test_infix_ops(line: str, correct_lexemes: List[vl.Lexeme]):
    assert vl.lex_line(line) == correct_lexemes
Exemple #8
0
def test_atom(line: str, tree: AST):
    lexemes = lex_line(line)
    run_test('atom', tree, lexemes, [], [])
Exemple #9
0
def test_class_def(line: str, tree: AST):
    lexemes = lex_line(line)
    run_test('class_def', tree, lexemes, [], [vl.NEWLINE])
Exemple #10
0
def test_parameter(line: str, tree: AST):
    lexemes = lex_line(line)
    run_test('parameter', tree, lexemes, [], [])
Exemple #11
0
def test_stmt_block(line: str, tree: AST):
    lexemes = lex_line(line)
    run_test('stmt_block', tree, lexemes, [], [vl.NEWLINE])
Exemple #12
0
def test_op_expr(line: str, tree: AST):
    lexemes = lex_line(line)
    run_test('op_expr', tree, lexemes, [], [])