summaryrefslogtreecommitdiffstats
path: root/mojo
diff options
context:
space:
mode:
authordarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-07 19:06:40 +0000
committerdarin@chromium.org <darin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-07 19:06:40 +0000
commit118f08f84570bfeacaa4208b75db4b24c75479dd (patch)
tree3e1bad4969e879318e7c169b3720e93f49191c75 /mojo
parent02cf2e0410d89679739d8c7f077d2a96d2a6f482 (diff)
downloadchromium_src-118f08f84570bfeacaa4208b75db4b24c75479dd.zip
chromium_src-118f08f84570bfeacaa4208b75db4b24c75479dd.tar.gz
chromium_src-118f08f84570bfeacaa4208b75db4b24c75479dd.tar.bz2
Mojo: Add support for attributes [name=value] on interfaces.
This will be useful for defining peer relations between interfaces. R=davemoore@chromium.org Review URL: https://codereview.chromium.org/63843003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@233652 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'mojo')
-rwxr-xr-xmojo/public/bindings/parser/mojo_parser.py7
-rwxr-xr-xmojo/public/bindings/parser/mojo_translate.py5
2 files changed, 7 insertions, 5 deletions
diff --git a/mojo/public/bindings/parser/mojo_parser.py b/mojo/public/bindings/parser/mojo_parser.py
index db13fd8..9bc9489 100755
--- a/mojo/public/bindings/parser/mojo_parser.py
+++ b/mojo/public/bindings/parser/mojo_parser.py
@@ -150,7 +150,8 @@ class Parser(object):
p[0] = ListFromConcat(p[1], p[3])
def p_attribute(self, p):
- """attribute : NAME EQUALS NUMBER"""
+ """attribute : NAME EQUALS NUMBER
+ | NAME EQUALS NAME"""
p[0] = ('ATTRIBUTE', p[1], p[3])
def p_struct(self, p):
@@ -168,8 +169,8 @@ class Parser(object):
p[0] = ('FIELD', p[1], p[2], p[3])
def p_interface(self, p):
- """interface : INTERFACE NAME LCURLY methods RCURLY SEMICOLON"""
- p[0] = ('INTERFACE', p[2], p[4])
+ """interface : attribute_section INTERFACE NAME LCURLY methods RCURLY SEMICOLON"""
+ p[0] = ('INTERFACE', p[3], p[1], p[5])
def p_methods(self, p):
"""methods : method methods
diff --git a/mojo/public/bindings/parser/mojo_translate.py b/mojo/public/bindings/parser/mojo_translate.py
index 46aa071..60b06e3 100755
--- a/mojo/public/bindings/parser/mojo_translate.py
+++ b/mojo/public/bindings/parser/mojo_translate.py
@@ -76,11 +76,12 @@ class MojomBuilder():
self.mojom['structs'].append(struct)
# TODO(darin): Add support for |attributes|
- def AddInterface(self, name, methods):
+ def AddInterface(self, name, attributes, methods):
interface = {}
interface['name'] = name
interface['methods'] = MapMethods(methods)
self.mojom['interfaces'].append(interface)
+ # TODO(darin): Add support for |attributes|
def AddModule(self, name, contents):
self.mojom['name'] = name
@@ -91,7 +92,7 @@ class MojomBuilder():
if item[0] == 'STRUCT':
self.AddStruct(name=item[1], attributes=item[2], fields=item[3])
elif item[0] == 'INTERFACE':
- self.AddInterface(name=item[1], methods=item[2])
+ self.AddInterface(name=item[1], attributes=item[2], methods=item[3])
def Build(self, tree):
if tree[0] == 'MODULE':