Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(271)

Unified Diff: mojo/public/bindings/parser/mojo_translate.py

Issue 53173008: Add mojom_bindings_generator.gypi (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: One more rename Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « mojo/public/bindings/parser/mojo_parser.py ('k') | mojo/public/bindings/sample/generated/sample_service.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: mojo/public/bindings/parser/mojo_translate.py
diff --git a/mojo/public/bindings/parser/mojo_translate.py b/mojo/public/bindings/parser/mojo_translate.py
deleted file mode 100755
index 472e1ce9aa6e316f589df520b3cf8b5fb7fa2e55..0000000000000000000000000000000000000000
--- a/mojo/public/bindings/parser/mojo_translate.py
+++ /dev/null
@@ -1,130 +0,0 @@
-#!/usr/bin/env python
-# 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.
-
-"""Translate parse tree to Mojom IR"""
-
-
-import os
-import sys
-
-
-def MapKind(kind):
- map_to_kind = { 'bool': 'b',
- 'int8': 'i8',
- 'int16': 'i16',
- 'int32': 'i32',
- 'int64': 'i64',
- 'uint8': 'u8',
- 'uint16': 'u16',
- 'uint32': 'u32',
- 'uint64': 'u64',
- 'float': 'f',
- 'double': 'd',
- 'string': 's',
- 'handle': 'h' }
- if kind.endswith('[]'):
- return 'a:' + MapKind(kind[0:len(kind)-2])
- if kind in map_to_kind:
- return map_to_kind[kind]
- return 'x:' + kind
-
-
-def MapOrdinal(ordinal):
- if ordinal == None:
- return None;
- return int(ordinal[1:]) # Strip leading '@'
-
-
-def GetAttribute(attributes, name):
- out = None
- for attribute in attributes:
- if attribute[0] == 'ATTRIBUTE' and attribute[1] == name:
- out = attribute[2]
- return out
-
-
-def MapFields(fields):
- out = []
- for field in fields:
- if field[0] == 'FIELD':
- out.append({'name': field[2],
- 'kind': MapKind(field[1]),
- 'ordinal': MapOrdinal(field[3])})
- return out
-
-
-def MapParameters(parameters):
- out = []
- for parameter in parameters:
- if parameter[0] == 'PARAM':
- out.append({'name': parameter[2],
- 'kind': MapKind(parameter[1]),
- 'ordinal': MapOrdinal(parameter[3])})
- return out
-
-
-def MapMethods(methods):
- out = []
- for method in methods:
- if method[0] == 'METHOD':
- out.append({'name': method[1],
- 'parameters': MapParameters(method[2]),
- 'ordinal': MapOrdinal(method[3])})
- return out
-
-
-class MojomBuilder():
-
- def __init__(self):
- self.mojom = {}
-
- def AddStruct(self, name, attributes, fields):
- struct = {}
- struct['name'] = name
- # TODO(darin): Add support for |attributes|
- #struct['attributes'] = MapAttributes(attributes)
- struct['fields'] = MapFields(fields)
- self.mojom['structs'].append(struct)
-
- def AddInterface(self, name, attributes, methods):
- interface = {}
- interface['name'] = name
- interface['peer'] = GetAttribute(attributes, 'Peer')
- interface['methods'] = MapMethods(methods)
- self.mojom['interfaces'].append(interface)
-
- def AddModule(self, name, namespace, contents):
- self.mojom['name'] = name
- self.mojom['namespace'] = namespace
- self.mojom['structs'] = []
- self.mojom['interfaces'] = []
- for item in contents:
- if item[0] == 'STRUCT':
- self.AddStruct(name=item[1], attributes=item[2], fields=item[3])
- elif item[0] == 'INTERFACE':
- self.AddInterface(name=item[1], attributes=item[2], methods=item[3])
-
- def Build(self, tree, name):
- if tree[0] == 'MODULE':
- self.AddModule(name=name, namespace=tree[1], contents=tree[2])
- return self.mojom
-
-
-def Translate(tree, name):
- return MojomBuilder().Build(tree, name)
-
-
-def Main():
- if len(sys.argv) < 2:
- print("usage: %s filename" % (sys.argv[0]))
- sys.exit(1)
- tree = eval(open(sys.argv[1]).read())
- name = os.path.splitext(os.path.basename(sys.argv[1]))[0]
- result = Translate(tree, name)
- print(result)
-
-
-if __name__ == '__main__':
- Main()
« no previous file with comments | « mojo/public/bindings/parser/mojo_parser.py ('k') | mojo/public/bindings/sample/generated/sample_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698