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):
# Operators
'PLUS', 'MINUS', 'TIMES', 'DIVIDE', 'MOD',
'OR', 'AND', 'NOT', 'XOR', 'LSHIFT', 'RSHIFT',
'LOR', 'LAND', 'LNOT',
'LT', 'LE', 'GT', 'GE', 'EQ', 'NE',
# Assignment
'EQUALS',
......@@ -99,6 +97,7 @@ class Lexer(object):
'LPAREN', 'RPAREN', # ( )
'LBRACKET', 'RBRACKET', # [ ]
'LBRACE', 'RBRACE', # { }
'LANGLE', 'RANGLE', # < >
'SEMI', # ;
'COMMA', 'DOT' # , .
)
......@@ -184,15 +183,6 @@ class Lexer(object):
t_XOR = r'\^'
t_LSHIFT = 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'='
......@@ -207,6 +197,8 @@ class Lexer(object):
t_RBRACKET = r'\]'
t_LBRACE = r'\{'
t_RBRACE = r'\}'
t_LANGLE = r'<'
t_RANGLE = r'>'
t_COMMA = r','
t_DOT = r'\.'
t_SEMI = r';'
......
......@@ -188,7 +188,7 @@ class Parser(object):
p[0] = p[1]
def p_specializedhandle(self, p):
"""specializedhandle : HANDLE LT specializedhandlename GT"""
"""specializedhandle : HANDLE LANGLE specializedhandlename RANGLE"""
p[0] = "handle<" + p[3] + ">"
def p_specializedhandlename(self, p):
......@@ -286,17 +286,9 @@ class Parser(object):
| MINUS
| RSHIFT
| LSHIFT
| LT
| LE
| GE
| GT
| EQ
| NE
| AND
| OR
| XOR
| LAND
| LOR"""
| XOR"""
p[0] = p[1]
def p_unary_expression(self, p):
......@@ -307,8 +299,7 @@ class Parser(object):
def p_unary_operator(self, p):
"""unary_operator : PLUS
| MINUS
| NOT
| LNOT"""
| NOT"""
p[0] = p[1]
def p_primary_expression(self, p):
......
......@@ -72,11 +72,18 @@ enum MyEnum {
MY_ENUM_2 = 1 + 1,
MY_ENUM_3 = 1 * 3,
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
"""
self.maxDiff = 2000
expected = \
[('MODULE',
'my_module',
......@@ -91,7 +98,23 @@ enum MyEnum {
['2', '*', '(', ('EXPRESSION', ['1', '+', '1']), ')'])),
('ENUM_FIELD',
'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)
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