метод рекурсивного спуска сверху вниз Python

В чем разница между этими предложениями ниже:

      <stmt-list> ::= empty | <stmt> { <stmt> }

and 

<stmt-list> ::= empty | <stmt> <stmt-list>

Каким было бы решение для грамматики крошечного языка в python?

      <stmt-list> ::= empty | <stmt> { <stmt> }
<stmt> ::= id = <expr> ; |
 print <expr> ;
<expr> ::= <term> { + <term> | - <term> }
<term> ::= <factor> { * <factor> | / <factor> }
<factor> ::= id | intnum | ( <expr> )

Я должен использовать входной файл (sample.tiny) для получения вывода.

образец.крошечный

      print 2 + 3 * 4 ;
s = 2 + 3 ;
t = 9 - 2 ;
print s * t ;
print ( s + t ) * ( s - t ) ;

выход

       print 2 + 3 * 4 ;
 >>> 14
 s = 2 + 3 ;
 t = 9 - 2 ;
 print s * t ;
 >>> 35
 print ( s + t ) * ( s - t ) ;
 >>> -24

0 ответов

Другие вопросы по тегам