Анимация
JavaScript
|
Главная Библионтека Приложение B Грамматика языка Здесь используются следующие обозначения для лексем: NAME Имя (идентификатор). NUMBER Числовое литеральное выражение. STRING Строковое литеральное выражение. NEWLINE Символ (или последовательность из двух символов), обозначающий переход на новую строку. ENDMARKER Конец файла (потока). INDENT Увеличение уровня отступа. DEDENT Уменьшение уровня отступа. Начальные символы грамматики: single input Одна интерактивная инструкция. file input Модуль или последовательность команд, считываемая из файла. eval input Инструкция-выражение, передаваемое функции eval() или ввод, получаемый функцией input() . single input: NEWLINE simple stmt compound stmt NEWLINE file input: eval input: (NEWLINE stmt)* ENDMARKER testlist NEWLINE* ENDMARKER funcdef: parameters: varargslist: fpdef: fplist: def NAME parameters : suite ( [varargslist] ) (fpdef [= test] ,)* (* NAME [, ** NAME] ** NAME) fpdef [= test] (, fpdef [= test])* [,] NAME ( fplist ) fpdef (, fpdef)* [,] stmt: simple stmt: small stmt: expr stmt: augassign: print stmt: del stmt: pass stmt: flow stmt: simple stmt compound stmt small stmt (; small stmt)* [;] NEWLINE expr stmt print stmt del stmt pass stmt flow stmt import stmt global stmt exec stmt assert stmt testlist (augassign testlist (= testlist)*) += -= *= /= %= &= = = <<= >>= i**=i print ( [ test (, test)* [,] ] >> test [ (, test)+ [,] ] ) del exprlist pass break stmt continue stmt return stmt raise stmt break stmt: break continue stmt: continue return stmt: return [testlist] raise [test [, test [, test]]] raise stmt: import stmt: import dotted as name (, dotted as name)* from dotted name import (* import as name (, import as name)*) import as name: NAME [NAME NAME] dotted as name: dotted name [NAME NAME] dotted name: global stmt: eXec stmt: assert stmt: NAME (. NAME)* global NAME (, NAME)* exec expr [in test [, test]] assert test [, test] compound stmt: if stmt while stmt for stmt try stmt funcdef classdef if stmt: while stmt: for stmt: try stmt: if test : suite (elif test : suite)* [else : suite] while test : suite [else : suite] for exprlist in testlist : suite [else : suite] (try : suite (except clause : suite)+ [else : suite] try : suite finally : suite) except clause: except [test [, test]] 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 [ 137 ] 138 139 140 141 142 143 144 145 |