Mojo: Mojom: Remove relational (e.g., !=) and logical operators (e.g., || and !).

R=darin@chromium.org

Review URL: https://codereview.chromium.org/213693004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260068 0039d316-1c4b-4281-b951-d872f2087c98
parent b6c56d0b
...@@ -86,8 +86,6 @@ class Lexer(object): ...@@ -86,8 +86,6 @@ class Lexer(object):
# Operators # Operators
'PLUS', 'MINUS', 'TIMES', 'DIVIDE', 'MOD', 'PLUS', 'MINUS', 'TIMES', 'DIVIDE', 'MOD',
'OR', 'AND', 'NOT', 'XOR', 'LSHIFT', 'RSHIFT', 'OR', 'AND', 'NOT', 'XOR', 'LSHIFT', 'RSHIFT',
'LOR', 'LAND', 'LNOT',
'LT', 'LE', 'GT', 'GE', 'EQ', 'NE',
# Assignment # Assignment
'EQUALS', 'EQUALS',
...@@ -99,6 +97,7 @@ class Lexer(object): ...@@ -99,6 +97,7 @@ class Lexer(object):
'LPAREN', 'RPAREN', # ( ) 'LPAREN', 'RPAREN', # ( )
'LBRACKET', 'RBRACKET', # [ ] 'LBRACKET', 'RBRACKET', # [ ]
'LBRACE', 'RBRACE', # { } 'LBRACE', 'RBRACE', # { }
'LANGLE', 'RANGLE', # < >
'SEMI', # ; 'SEMI', # ;
'COMMA', 'DOT' # , . 'COMMA', 'DOT' # , .
) )
...@@ -184,15 +183,6 @@ class Lexer(object): ...@@ -184,15 +183,6 @@ class Lexer(object):
t_XOR = r'\^' t_XOR = r'\^'
t_LSHIFT = r'<<' t_LSHIFT = r'<<'
t_RSHIFT = r'>>' t_RSHIFT = r'>>'
t_LOR = r'\|\|'
t_LAND = r'&&'
t_LNOT = r'!'
t_LT = r'<'
t_GT = r'>'
t_LE = r'<='
t_GE = r'>='
t_EQ = r'=='
t_NE = r'!='
# = # =
t_EQUALS = r'=' t_EQUALS = r'='
...@@ -207,6 +197,8 @@ class Lexer(object): ...@@ -207,6 +197,8 @@ class Lexer(object):
t_RBRACKET = r'\]' t_RBRACKET = r'\]'
t_LBRACE = r'\{' t_LBRACE = r'\{'
t_RBRACE = r'\}' t_RBRACE = r'\}'
t_LANGLE = r'<'
t_RANGLE = r'>'
t_COMMA = r',' t_COMMA = r','
t_DOT = r'\.' t_DOT = r'\.'
t_SEMI = r';' t_SEMI = r';'
......
...@@ -188,7 +188,7 @@ class Parser(object): ...@@ -188,7 +188,7 @@ class Parser(object):
p[0] = p[1] p[0] = p[1]
def p_specializedhandle(self, p): def p_specializedhandle(self, p):
"""specializedhandle : HANDLE LT specializedhandlename GT""" """specializedhandle : HANDLE LANGLE specializedhandlename RANGLE"""
p[0] = "handle<" + p[3] + ">" p[0] = "handle<" + p[3] + ">"
def p_specializedhandlename(self, p): def p_specializedhandlename(self, p):
...@@ -286,17 +286,9 @@ class Parser(object): ...@@ -286,17 +286,9 @@ class Parser(object):
| MINUS | MINUS
| RSHIFT | RSHIFT
| LSHIFT | LSHIFT
| LT
| LE
| GE
| GT
| EQ
| NE
| AND | AND
| OR | OR
| XOR | XOR"""
| LAND
| LOR"""
p[0] = p[1] p[0] = p[1]
def p_unary_expression(self, p): def p_unary_expression(self, p):
...@@ -307,8 +299,7 @@ class Parser(object): ...@@ -307,8 +299,7 @@ class Parser(object):
def p_unary_operator(self, p): def p_unary_operator(self, p):
"""unary_operator : PLUS """unary_operator : PLUS
| MINUS | MINUS
| NOT | NOT"""
| LNOT"""
p[0] = p[1] p[0] = p[1]
def p_primary_expression(self, p): def p_primary_expression(self, p):
......
...@@ -72,11 +72,18 @@ enum MyEnum { ...@@ -72,11 +72,18 @@ enum MyEnum {
MY_ENUM_2 = 1 + 1, MY_ENUM_2 = 1 + 1,
MY_ENUM_3 = 1 * 3, MY_ENUM_3 = 1 * 3,
MY_ENUM_4 = 2 * (1 + 1), MY_ENUM_4 = 2 * (1 + 1),
MY_ENUM_5 = 1 + 2 * 2 MY_ENUM_5 = 1 + 2 * 2,
MY_ENUM_6 = -6 / -2,
MY_ENUM_7 = 3 | (1 << 2),
MY_ENUM_8 = 16 >> 1,
MY_ENUM_9 = 1 ^ 15 & 8,
MY_ENUM_10 = 110 % 100,
MY_ENUM_MINUS_1 = ~0
}; };
} // my_module } // my_module
""" """
self.maxDiff = 2000
expected = \ expected = \
[('MODULE', [('MODULE',
'my_module', 'my_module',
...@@ -91,7 +98,23 @@ enum MyEnum { ...@@ -91,7 +98,23 @@ enum MyEnum {
['2', '*', '(', ('EXPRESSION', ['1', '+', '1']), ')'])), ['2', '*', '(', ('EXPRESSION', ['1', '+', '1']), ')'])),
('ENUM_FIELD', ('ENUM_FIELD',
'MY_ENUM_5', 'MY_ENUM_5',
('EXPRESSION', ['1', '+', '2', '*', '2']))])])] ('EXPRESSION', ['1', '+', '2', '*', '2'])),
('ENUM_FIELD',
'MY_ENUM_6',
('EXPRESSION',
['-', ('EXPRESSION', ['6', '/', '-', ('EXPRESSION', ['2'])])])),
('ENUM_FIELD',
'MY_ENUM_7',
('EXPRESSION',
['3', '|', '(', ('EXPRESSION', ['1', '<<', '2']), ')'])),
('ENUM_FIELD', 'MY_ENUM_8', ('EXPRESSION', ['16', '>>', '1'])),
('ENUM_FIELD',
'MY_ENUM_9',
('EXPRESSION', ['1', '^', '15', '&', '8'])),
('ENUM_FIELD', 'MY_ENUM_10', ('EXPRESSION', ['110', '%', '100'])),
('ENUM_FIELD',
'MY_ENUM_MINUS_1',
('EXPRESSION', ['~', ('EXPRESSION', ['0'])]))])])]
self.assertEquals(mojo_parser.Parse(source, "my_file.mojom"), expected) self.assertEquals(mojo_parser.Parse(source, "my_file.mojom"), expected)
def testNoConditionals(self): def testNoConditionals(self):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment