diff options
author | viettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-24 07:35:04 +0000 |
---|---|---|
committer | viettrungluu@chromium.org <viettrungluu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-24 07:35:04 +0000 |
commit | 924953288640dc7f5be0f26f054e34a934e4ec59 (patch) | |
tree | 85a96cbc672fa4946d9ed372516c73f14fa9e0c6 /mojo | |
parent | 2dc6ab5a1db1985cc611ed4a507beb9ba36e8610 (diff) | |
download | chromium_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-x | mojo/public/bindings/generators/run_cpp_generator.py | 3 | ||||
-rwxr-xr-x | mojo/public/bindings/generators/run_mojom_tests.py | 3 | ||||
-rw-r--r-- | mojo/public/bindings/mojom_bindings_generator.gypi | 8 | ||||
-rwxr-xr-x | mojo/public/bindings/mojom_bindings_generator.py | 17 | ||||
-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-x | mojo/public/bindings/pylib/parse/mojo_parser.py (renamed from mojo/public/bindings/parse/mojo_parser.py) | 19 | ||||
-rwxr-xr-x | mojo/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 |