======================================== -- input : 123 -- lexer : Token(kind='NUMBER',value='123',children=[]) -- parser : ['EXPRESSION', '', [['TERM', '', [['FACTOR', '', [['NUMBER', '123', []]]]]]]] -- output : 123 ======================================== -- input : a*b -- lexer : Token(kind='IDENTIFIER',value='a',children=[]) Token(kind='MULOP',value='*',children=[]) Token(kind='IDENTIFIER',value='b',children=[]) -- parser : [ 'EXPRESSION', '', [ [ 'TERM', '', [ ['FACTOR', '', [['IDENTIFIER', 'a', []]]], ['MULOP', '*', []], ['TERM', '', [['FACTOR', '', [['IDENTIFIER', 'b', []]]]]]]]]] -- output : (* a b) ======================================== -- input : a + 2 * b -- lexer : Token(kind='IDENTIFIER',value='a',children=[]) Token(kind='ADDOP',value='+',children=[]) Token(kind='NUMBER',value='2',children=[]) Token(kind='MULOP',value='*',children=[]) Token(kind='IDENTIFIER',value='b',children=[]) -- parser : [ 'EXPRESSION', '', [ ['TERM', '', [['FACTOR', '', [['IDENTIFIER', 'a', []]]]]], ['ADDOP', '+', []], [ 'EXPRESSION', '', [ [ 'TERM', '', [ ['FACTOR', '', [['NUMBER', '2', []]]], ['MULOP', '*', []], [ 'TERM', '', [['FACTOR', '', [['IDENTIFIER', 'b', []]]]]]]]]]]] -- output : (+ a (* 2 b)) ======================================== -- input : 1*c*2*d -- lexer : Token(kind='NUMBER',value='1',children=[]) Token(kind='MULOP',value='*',children=[]) Token(kind='IDENTIFIER',value='c',children=[]) Token(kind='MULOP',value='*',children=[]) Token(kind='NUMBER',value='2',children=[]) Token(kind='MULOP',value='*',children=[]) Token(kind='IDENTIFIER',value='d',children=[]) -- parser : [ 'EXPRESSION', '', [ [ 'TERM', '', [ ['FACTOR', '', [['NUMBER', '1', []]]], ['MULOP', '*', []], [ 'TERM', '', [ ['FACTOR', '', [['IDENTIFIER', 'c', []]]], ['MULOP', '*', []], [ 'TERM', '', [ ['FACTOR', '', [['NUMBER', '2', []]]], ['MULOP', '*', []], [ 'TERM', '', [ [ 'FACTOR', '', [['IDENTIFIER', 'd', []]]]]]]]]]]]]] -- output : (* 1 (* c (* 2 d))) ======================================== -- input : a*b+c*d -- lexer : Token(kind='IDENTIFIER',value='a',children=[]) Token(kind='MULOP',value='*',children=[]) Token(kind='IDENTIFIER',value='b',children=[]) Token(kind='ADDOP',value='+',children=[]) Token(kind='IDENTIFIER',value='c',children=[]) Token(kind='MULOP',value='*',children=[]) Token(kind='IDENTIFIER',value='d',children=[]) -- parser : [ 'EXPRESSION', '', [ [ 'TERM', '', [ ['FACTOR', '', [['IDENTIFIER', 'a', []]]], ['MULOP', '*', []], ['TERM', '', [['FACTOR', '', [['IDENTIFIER', 'b', []]]]]]]], ['ADDOP', '+', []], [ 'EXPRESSION', '', [ [ 'TERM', '', [ ['FACTOR', '', [['IDENTIFIER', 'c', []]]], ['MULOP', '*', []], [ 'TERM', '', [['FACTOR', '', [['IDENTIFIER', 'd', []]]]]]]]]]]] -- output : (+ (* a b) (* c d)) ======================================== -- input : 123 + abc + z * ( 3 + x ) -- lexer : Token(kind='NUMBER',value='123',children=[]) Token(kind='ADDOP',value='+',children=[]) Token(kind='IDENTIFIER',value='abc',children=[]) Token(kind='ADDOP',value='+',children=[]) Token(kind='IDENTIFIER',value='z',children=[]) Token(kind='MULOP',value='*',children=[]) Token(kind='LEFTPAREN',value='(',children=[]) Token(kind='NUMBER',value='3',children=[]) Token(kind='ADDOP',value='+',children=[]) Token(kind='IDENTIFIER',value='x',children=[]) Token(kind='RIGHTPAREN',value=')',children=[]) -- parser : [ 'EXPRESSION', '', [ ['TERM', '', [['FACTOR', '', [['NUMBER', '123', []]]]]], ['ADDOP', '+', []], [ 'EXPRESSION', '', [ ['TERM', '', [['FACTOR', '', [['IDENTIFIER', 'abc', []]]]]], ['ADDOP', '+', []], [ 'EXPRESSION', '', [ [ 'TERM', '', [ ['FACTOR', '', [['IDENTIFIER', 'z', []]]], ['MULOP', '*', []], [ 'TERM', '', [ [ 'FACTOR', '', [ ['LEFTPAREN', '(', []], [ 'EXPRESSION', '', [ [ 'TERM', '', [ [ 'FACTOR', '', [ [ 'NUMBER', '3', [ ]]]]]], ['ADDOP', '+', []], [ 'EXPRESSION', '', [ [ 'TERM', '', [ [ 'FACTOR', '', [ [ 'IDENTIFIER', 'x', [ ]]]]]]]]]], [ 'RIGHTPAREN', ')', []]]]]]]]]]]]]] -- output : (+ 123 (+ abc (* z (+ 3 x))))