summaryrefslogtreecommitdiffstats
path: root/mojo
diff options
context:
space:
mode:
authorviettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-24 07:35:04 +0000
committerviettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-24 07:35:04 +0000
commit924953288640dc7f5be0f26f054e34a934e4ec59 (patch)
tree85a96cbc672fa4946d9ed372516c73f14fa9e0c6 /mojo
parent2dc6ab5a1db1985cc611ed4a507beb9ba36e8610 (diff)
downloadchromium_src-924953288640dc7f5be0f26f054e34a934e4ec59.zip
chromium_src-924953288640dc7f5be0f26f054e34a934e4ec59.tar.gz
chromium_src-924953288640dc7f5be0f26f054e34a934e4ec59.tar.bz2
Mojo: Move a bunch of bindings "library" stuff to pylib subdirectory.
Still to do: Stuff in the generators directory, which will be split in a different (and more complicated) way. R=davemoore@chromium.org Review URL: https://codereview.chromium.org/146163002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@246807 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'mojo')
-rwxr-xr-xmojo/public/bindings/generators/run_cpp_generator.py3
-rwxr-xr-xmojo/public/bindings/generators/run_mojom_tests.py3
-rw-r--r--mojo/public/bindings/mojom_bindings_generator.gypi8
-rwxr-xr-xmojo/public/bindings/mojom_bindings_generator.py17
-rw-r--r--mojo/public/bindings/pylib/parse/__init__.py (renamed from mojo/public/bindings/parse/__init__.py)0
-rw-r--r--mojo/public/bindings/pylib/parse/mojo_lexer.py (renamed from mojo/public/bindings/parse/mojo_lexer.py)0
-rwxr-xr-xmojo/public/bindings/pylib/parse/mojo_parser.py (renamed from mojo/public/bindings/parse/mojo_parser.py)19
-rwxr-xr-xmojo/public/bindings/pylib/parse/mojo_translate.py (renamed from mojo/public/bindings/parse/mojo_translate.py)0
8 files changed, 33 insertions, 17 deletions
diff --git a/mojo/public/bindings/generators/run_cpp_generator.py b/mojo/public/bindings/generators/run_cpp_generator.py
index cbfdc37..c9ef77d 100755
--- a/mojo/public/bindings/generators/run_cpp_generator.py
+++ b/mojo/public/bindings/generators/run_cpp_generator.py
@@ -21,6 +21,5 @@ module = mojom_data.ModuleFromData(dict)
dir = None
if len(sys.argv) > 2:
dir = sys.argv[2]
-cpp = mojom_cpp_generator.CPPGenerator(
- module, "mojo/public/bindings/generators/gen", dir)
+cpp = mojom_cpp_generator.Generator(module, ".", dir)
cpp.GenerateFiles()
diff --git a/mojo/public/bindings/generators/run_mojom_tests.py b/mojo/public/bindings/generators/run_mojom_tests.py
index fc6d184..e57ef47 100755
--- a/mojo/public/bindings/generators/run_mojom_tests.py
+++ b/mojo/public/bindings/generators/run_mojom_tests.py
@@ -28,9 +28,8 @@ def main(args):
if errors:
print '\nFailed tests.'
- return errors
+ return min(errors, 127) # Make sure the return value doesn't "wrap".
if __name__ == '__main__':
sys.exit(main(sys.argv[1:]))
-
diff --git a/mojo/public/bindings/mojom_bindings_generator.gypi b/mojo/public/bindings/mojom_bindings_generator.gypi
index e520880..de29a11 100644
--- a/mojo/public/bindings/mojom_bindings_generator.gypi
+++ b/mojo/public/bindings/mojom_bindings_generator.gypi
@@ -1,4 +1,4 @@
-# Copyright (c) 2013 The Chromium Authors. All rights reserved.
+# Copyright 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
@@ -16,8 +16,6 @@
},
'inputs': [
'<(mojom_bindings_generator)',
- '<(DEPTH)/mojo/public/bindings/parse/mojo_parser.py',
- '<(DEPTH)/mojo/public/bindings/parse/mojo_translate.py',
'<(DEPTH)/mojo/public/bindings/generators/cpp_templates/interface_declaration.tmpl',
'<(DEPTH)/mojo/public/bindings/generators/cpp_templates/interface_definition.tmpl',
'<(DEPTH)/mojo/public/bindings/generators/cpp_templates/interface_proxy_declaration.tmpl',
@@ -42,6 +40,10 @@
'<(DEPTH)/mojo/public/bindings/generators/mojom_js_generator.py',
'<(DEPTH)/mojo/public/bindings/generators/mojom_pack.py',
'<(DEPTH)/mojo/public/bindings/generators/template_expander.py',
+ '<(DEPTH)/mojo/public/bindings/pylib/parse/__init__.py',
+ '<(DEPTH)/mojo/public/bindings/pylib/parse/mojo_lexer.py',
+ '<(DEPTH)/mojo/public/bindings/pylib/parse/mojo_parser.py',
+ '<(DEPTH)/mojo/public/bindings/pylib/parse/mojo_translate.py',
],
'outputs': [
'<(output_dir)/<(RULE_INPUT_ROOT).cc',
diff --git a/mojo/public/bindings/mojom_bindings_generator.py b/mojo/public/bindings/mojom_bindings_generator.py
index 6f8aea4..4cfc034 100755
--- a/mojo/public/bindings/mojom_bindings_generator.py
+++ b/mojo/public/bindings/mojom_bindings_generator.py
@@ -6,16 +6,24 @@
"""The frontend for the Mojo bindings system."""
+import argparse
import imp
import os
+import pprint
import sys
-from argparse import ArgumentParser
+
+script_dir = os.path.dirname(os.path.realpath(__file__))
+sys.path.insert(0, os.path.join(script_dir, 'pylib'))
+
from generators import mojom_data
from parse import mojo_parser
from parse import mojo_translate
def LoadGenerators(generators_string):
+ if not generators_string:
+ return [] # No generators.
+
generators = []
for generator_name in [s.strip() for s in generators_string.split(",")]:
# "Built-in" generators:
@@ -37,7 +45,8 @@ def LoadGenerators(generators_string):
def Main():
- parser = ArgumentParser(description="Generate bindings from mojom files.")
+ parser = argparse.ArgumentParser(
+ description="Generate bindings from mojom files.")
parser.add_argument("filename", nargs="+",
help="mojom input file")
parser.add_argument("-i", "--include_dir", dest="include_dir", default=".",
@@ -47,6 +56,8 @@ def Main():
parser.add_argument("-g", "--generators", dest="generators_string",
metavar="GENERATORS", default="c++,javascript",
help="comma-separated list of generators")
+ parser.add_argument("--debug_print_intermediate", action="store_true",
+ help="print the intermediate representation")
args = parser.parse_args()
# TODO(vtl): Load these dynamically. (Also add a command-line option to
@@ -62,6 +73,8 @@ def Main():
# at least avoid generating the serialized Mojom IR.
tree = mojo_parser.Parse(filename)
mojom = mojo_translate.Translate(tree, name)
+ if args.debug_print_intermediate:
+ pprint.PrettyPrinter().pprint(mojom)
module = mojom_data.OrderedModuleFromData(mojom)
for generator_module in generator_modules:
generator = generator_module.Generator(module, args.include_dir,
diff --git a/mojo/public/bindings/parse/__init__.py b/mojo/public/bindings/pylib/parse/__init__.py
index e69de29..e69de29 100644
--- a/mojo/public/bindings/parse/__init__.py
+++ b/mojo/public/bindings/pylib/parse/__init__.py
diff --git a/mojo/public/bindings/parse/mojo_lexer.py b/mojo/public/bindings/pylib/parse/mojo_lexer.py
index 47ab396..47ab396 100644
--- a/mojo/public/bindings/parse/mojo_lexer.py
+++ b/mojo/public/bindings/pylib/parse/mojo_lexer.py
diff --git a/mojo/public/bindings/parse/mojo_parser.py b/mojo/public/bindings/pylib/parse/mojo_parser.py
index b7ea3e3..71da823 100755
--- a/mojo/public/bindings/parse/mojo_parser.py
+++ b/mojo/public/bindings/pylib/parse/mojo_parser.py
@@ -18,8 +18,8 @@ try:
from ply import yacc
except ImportError:
module_path, module_name = os.path.split(__file__)
- third_party = os.path.join(
- module_path, os.pardir, os.pardir, os.pardir, os.pardir, 'third_party')
+ third_party = os.path.join(module_path, os.pardir, os.pardir, os.pardir,
+ os.pardir, os.pardir, 'third_party')
sys.path.append(third_party)
# pylint: disable=F0401
from ply import lex
@@ -53,7 +53,7 @@ class Parser(object):
def p_definitions(self, p):
"""definitions : definition definitions
- |"""
+ | """
if len(p) > 1:
p[0] = ListFromConcat(p[1], p[2])
@@ -90,7 +90,7 @@ class Parser(object):
def p_struct_body(self, p):
"""struct_body : field struct_body
| enum struct_body
- |"""
+ | """
if len(p) > 1:
p[0] = ListFromConcat(p[1], p[2])
@@ -105,7 +105,8 @@ class Parser(object):
p[0] = p[2]
def p_interface(self, p):
- """interface : attribute_section INTERFACE NAME LBRACE interface_body RBRACE SEMI"""
+ """interface : attribute_section INTERFACE NAME LBRACE interface_body \
+ RBRACE SEMI"""
p[0] = ('INTERFACE', p[3], p[1], p[5])
def p_interface_body(self, p):
@@ -172,7 +173,7 @@ class Parser(object):
def p_enum_fields(self, p):
"""enum_fields : enum_field
| enum_field COMMA enum_fields
- |"""
+ | """
if len(p) == 2:
p[0] = ListFromConcat(p[1])
elif len(p) > 3:
@@ -194,7 +195,8 @@ class Parser(object):
def p_conditional_expression(self, p):
"""conditional_expression : binary_expression
- | binary_expression CONDOP expression COLON conditional_expression"""
+ | binary_expression CONDOP expression COLON \
+ conditional_expression"""
# Just pass the arguments through. I don't think it's possible to preserve
# the spaces of the original, so just put a single space between them.
p[0] = ' '.join(p[1:])
@@ -203,7 +205,8 @@ class Parser(object):
# evaluate them, we don't need that here.
def p_binary_expression(self, p):
"""binary_expression : unary_expression
- | binary_expression binary_operator binary_expression"""
+ | binary_expression binary_operator \
+ binary_expression"""
p[0] = ' '.join(p[1:])
def p_binary_operator(self, p):
diff --git a/mojo/public/bindings/parse/mojo_translate.py b/mojo/public/bindings/pylib/parse/mojo_translate.py
index 524db4a..524db4a 100755
--- a/mojo/public/bindings/parse/mojo_translate.py
+++ b/mojo/public/bindings/pylib/parse/mojo_translate.py