]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Added shifting and masking operators.
authorGuido van Rossum <guido@python.org>
Thu, 24 Oct 1991 14:54:25 +0000 (14:54 +0000)
committerGuido van Rossum <guido@python.org>
Thu, 24 Oct 1991 14:54:25 +0000 (14:54 +0000)
Grammar/Grammar

index 90a43f513a19c59dcb13e78afc1646ef81e2db38..6de1312891e2de054d28495524aa632a396c10d1 100644 (file)
@@ -1,4 +1,8 @@
-# Grammar for Python, version 6
+# Grammar for Python, version 7
+
+# Changes since version 6:
+#      Add logical operators '|', '^', '&' and '~'
+#      Add shift operators '<<' and '>>'
 
 # Changes since version 5:
 #      Comparison operators '<=' '>' '<>' are now 1 token
@@ -73,9 +77,13 @@ and_test: not_test ('and' not_test)*
 not_test: 'not' not_test | comparison
 comparison: expr (comp_op expr)*
 comp_op: '<'|'>'|'='|'>='|'<='|'<>'|'!='|'=='|'in'|'not' 'in'|'is'|'is' 'not'
-expr: term (('+'|'-') term)*
+expr: xor_expr ('|' xor_expr)*
+xor_expr: and_expr ('^' and_expr)*
+and_expr: shift_expr ('&' shift_expr)*
+shift_expr: arith_expr (('<<'|'>>') arith_expr)*
+arith_expr: term (('+'|'-') term)*
 term: factor (('*'|'/'|'%') factor)*
-factor: ('+'|'-') factor | atom trailer*
+factor: ('+'|'-'|'~') factor | atom trailer*
 atom: '(' [testlist] ')' | '[' [testlist] ']' | '{' [dictmaker] '}' | '`' testlist '`' | NAME | NUMBER | STRING
 trailer: '(' [testlist] ')' | '[' subscript ']' | '.' NAME
 subscript: test | [test] ':' [test]