def get_interfaces(file_path):
    parser = BlinkIDLParser(debug=False)
    class_name = 'Interface'
    definitions = parse_file(parser, file_path)
    for definition in definitions.GetChildren():
            if definition.GetClass() == class_name:
                return definition
Пример #2
0
def make_node_list(dir_name):
    node_list = []
    parser = BlinkIDLParser(debug=False)
    for idl_file in find_idl_files(dir_name):
        definitions = parse_file(parser, idl_file)
        node_list.append(definitions)
    return node_list
    def read_idl_file(self, idl_filename):
        """Returns an IdlDefinitions object for an IDL file, without any dependencies.

        The IdlDefinitions object is guaranteed to contain a single
        IdlInterface; it may also contain other definitions, such as
        callback functions and enumerations."""
        ast = blink_idl_parser.parse_file(self.parser, idl_filename)
        if not ast:
            raise Exception('Failed to parse %s' % idl_filename)
        idl_file_basename, _ = os.path.splitext(os.path.basename(idl_filename))
        definitions = IdlDefinitions(idl_file_basename, ast)

        validate_blink_idl_definitions(
            idl_filename, idl_file_basename, definitions)

        # Validate extended attributes
        if not self.extended_attribute_validator:
            return definitions

        try:
            self.extended_attribute_validator.validate_extended_attributes(definitions)
        except IDLInvalidExtendedAttributeError as error:
            raise IDLInvalidExtendedAttributeError("""
IDL ATTRIBUTE ERROR in file:
%s:
    %s
If you want to add a new IDL extended attribute, please add it to:
    %s
and add an explanation to the Blink IDL documentation at:
    http://www.chromium.org/blink/webidl/blink-idl-extended-attributes
    """ % (idl_filename, str(error), EXTENDED_ATTRIBUTES_RELATIVE_PATH))

        return definitions
Пример #4
0
def make_node_list(dir_name):
    node_list = []
    parser = BlinkIDLParser(debug=False)
    for idl_file in find_idl_files(dir_name):
        definitions = parse_file(parser, idl_file)
        node_list.append(definitions)
    return node_list
Пример #5
0
def make_node_idlfname_list(dir_name):
    node_and_idlfname = []
    parser = BlinkIDLParser(debug=False)
    for idl_file in find_idl_files(dir_name):
        definitions = parse_file(parser, idl_file)
        node_and_idlfname.append((definitions,os.path.basename(idl_file)))
    return node_and_idlfname
Пример #6
0
    def read_idl_file(self, idl_filename):
        """Returns an IdlDefinitions object for an IDL file, without any dependencies.

        The IdlDefinitions object is guaranteed to contain a single
        IdlInterface; it may also contain other definitions, such as
        callback functions and enumerations."""
        ast = blink_idl_parser.parse_file(self.parser, idl_filename)
        if not ast:
            raise Exception('Failed to parse %s' % idl_filename)
        idl_file_basename, _ = os.path.splitext(os.path.basename(idl_filename))
        definitions = IdlDefinitions(ast)

        validate_blink_idl_definitions(
            idl_filename, idl_file_basename, definitions)

        # Validate extended attributes
        if not self.extended_attribute_validator:
            return definitions

        try:
            self.extended_attribute_validator.validate_extended_attributes(definitions)
        except IDLInvalidExtendedAttributeError as error:
            raise IDLInvalidExtendedAttributeError("""
IDL ATTRIBUTE ERROR in file:
%s:
    %s
If you want to add a new IDL extended attribute, please add it to:
    %s
and add an explanation to the Blink IDL documentation at:
    http://www.chromium.org/blink/webidl/blink-idl-extended-attributes
    """ % (idl_filename, str(error), EXTENDED_ATTRIBUTES_RELATIVE_PATH))

        return definitions
Пример #7
0
def main(dir_name):
    node_and_idlfname = []
    def_basename = {}
    for idl_file in find_idl_files(dir_name):
        parser = BlinkIDLParser(debug=False)
        definitions = parse_file(parser, idl_file)
        node_and_idlfname.append([definitions,os.path.basename(idl_file)])
    return node_and_idlfname 
Пример #8
0
def main(dir_name):
    node_and_idlfname = []
    def_basename = {}
    for idl_file in find_idl_files(dir_name):
        parser = BlinkIDLParser(debug=False)
        definitions = parse_file(parser, idl_file)
        node_and_idlfname.append([definitions, os.path.basename(idl_file)])
    return node_and_idlfname
Пример #9
0
def get_interface_nodes(dir_path):
    parser = BlinkIDLParser(debug=False)
    class_name = 'Interface'
    for node_path in get_idl_files(dir_path):
        definitions = parse_file(parser, node_path)
        for definition in definitions.GetChildren():
            if definition.GetClass() == class_name:
                yield definition
Пример #10
0
def get_interface_nodes(dir_path):
    parser = BlinkIDLParser(debug=False)
    class_name = "Interface"
    for node_path in get_idl_files(dir_path):
        definitions = parse_file(parser, node_path)
        for definition in definitions.GetChildren():
            if definition.GetClass() == class_name:
                yield definition
def get_interface_nodes(dir_path):
    parser = BlinkIDLParser(debug=False)
    class_name = 'Interface' 
    for idl_node in get_idl_files(dir_path):
        node_path = idl_node
        definitions = parse_file(parser, idl_node)
        for definition in definitions.GetChildren():
            if definition.GetClass() == class_name:
                yield node_path
Пример #12
0
def main():
    options, _ = parse_options()

    filepaths = utilities.read_idl_files_list_from_file(options.idl_list_file)
    parser = blink_idl_parser.BlinkIDLParser()
    ast_group = web_idl.AstGroup(web_idl.Component(options.component))
    for filepath in filepaths:
        ast_group.add_ast_node(blink_idl_parser.parse_file(parser, filepath))
    ast_group.write_to_file(options.output)
Пример #13
0
 def collect_from_idl_files(self, filepaths):
     if type(filepaths) == str:
         filepaths = [filepaths]
     for filepath in filepaths:
         try:
             ast = blink_idl_parser.parse_file(self._parser, filepath)
             self.collect_from_ast(ast)
         except ValueError as ve:
             raise ValueError('%s\nin file %s' % (str(ve), filepath))
Пример #14
0
def main():
    options, args = parse_options()
    if args:
        raise RuntimeError('unknown arguments {}'.format(args))

    filepaths = utilities.read_idl_files_list_from_file(options.idl_list_file)
    parser = blink_idl_parser.BlinkIDLParser()
    ast_group = web_idl.AstGroup(options.component)
    for filepath in filepaths:
        ast_group.add_ast_node(blink_idl_parser.parse_file(parser, filepath))
    ast_group.write_to_file(options.output)
 def read_idl_file(self, idl_filename):
     """Returns an IdlDefinitions object for an IDL file, without any dependencies."""
     ast = blink_idl_parser.parse_file(self.parser, idl_filename)
     definitions = idl_definitions_builder.build_idl_definitions_from_ast(ast)
     if self.extended_attribute_validator:
         try:
             self.extended_attribute_validator.validate_extended_attributes(definitions)
         except idl_validator.IDLInvalidExtendedAttributeError, error:
             raise idl_validator.IDLInvalidExtendedAttributeError("""IDL ATTRIBUTE ERROR in file %s:
 %s
 If you want to add a new IDL extended attribute, please add it to bindings/scripts/IDLAttributes.txt and add an explanation to the Blink IDL document at http://chromium.org/blink/webidl
 """ % (idl_filename, str(error)))
Пример #16
0
def get_definitions(paths):
    """Returns a generator of IDL node.
    Args:
      paths: list of IDL file path
    Returns:
      a generator which yields IDL node objects
    """
    parser = BlinkIDLParser()
    for path in paths:
        definitions = parse_file(parser, path)
        for definition in definitions.GetChildren():
            yield definition
def get_definitions(paths):
    """Returns a generator of IDL node.
    Args:
      paths: list of IDL file path
    Returns:
      a generator which yields IDL node objects
    """
    parser = BlinkIDLParser()
    for path in paths:
        definitions = parse_file(parser, path)
        for definition in definitions.GetChildren():
            yield definition
Пример #18
0
    def read_idl_file(self, idl_filename):
        """Returns an IdlDefinitions object for an IDL file, without any dependencies.

        The IdlDefinitions object is guaranteed to contain a single
        IdlInterface; it may also contain other definitions, such as
        callback functions and enumerations."""
        ast = blink_idl_parser.parse_file(self.parser, idl_filename)
        if not ast:
            raise Exception('Failed to parse %s' % idl_filename)
        idl_file_basename, _ = os.path.splitext(os.path.basename(idl_filename))
        definitions = IdlDefinitions(idl_file_basename, ast)

        # Validate file contents with filename convention
        # The Blink IDL filenaming convention is that the file
        # <definition_name>.idl MUST contain exactly 1 definition
        # (interface, dictionary or exception), and the definition name must
        # agree with the file's basename, unless it is a partial definition.
        # (e.g., 'partial interface Foo' can be in FooBar.idl).
        targets = (definitions.interfaces.values() +
                   definitions.dictionaries.values())
        number_of_targets = len(targets)
        if number_of_targets != 1:
            raise Exception(
                'Expected exactly 1 definition in file {0}, but found {1}'.
                format(idl_filename, number_of_targets))
        target = targets[0]
        if not target.is_partial and target.name != idl_file_basename:
            raise Exception(
                'Definition name "{0}" disagrees with IDL file basename "{1}".'
                .format(target.name, idl_file_basename))

        # Validate extended attributes
        if not self.extended_attribute_validator:
            return definitions

        try:
            self.extended_attribute_validator.validate_extended_attributes(
                definitions)
        except IDLInvalidExtendedAttributeError as error:
            raise IDLInvalidExtendedAttributeError("""
IDL ATTRIBUTE ERROR in file:
%s:
    %s
If you want to add a new IDL extended attribute, please add it to:
    %s
and add an explanation to the Blink IDL documentation at:
    http://www.chromium.org/blink/webidl/blink-idl-extended-attributes
    """ % (idl_filename, str(error), EXTENDED_ATTRIBUTES_RELATIVE_PATH))

        return definitions
Пример #19
0
def get_interfaces(path_file):
    """Returns generator which yields interface IDL nodes.
    Args:
      path_file: text file
    Return:
      definition: a generator, interface node objects
    """
    parser = BlinkIDLParser(debug=False)
    class_name = 'Interface'
    for node_path in load_filepaths(path_file):
        definitions = parse_file(parser, node_path)
        for definition in definitions.GetChildren():
            if definition.GetClass() == class_name:
                yield definition
Пример #20
0
    def read_idl_file(self, idl_filename):
        """Returns an IdlDefinitions object for an IDL file, without any dependencies."""
        ast = blink_idl_parser.parse_file(self.parser, idl_filename)
        definitions = idl_definitions_builder.build_idl_definitions_from_ast(ast)
        if self.extended_attribute_validator:
            try:
                self.extended_attribute_validator.validate_extended_attributes(definitions)
            except idl_validator.IDLInvalidExtendedAttributeError as error:
                raise idl_validator.IDLInvalidExtendedAttributeError("""IDL ATTRIBUTE ERROR in file %s:
    %s
    If you want to add a new IDL extended attribute, please add it to bindings/scripts/IDLAttributes.txt and add an explanation to the Blink IDL document at http://chromium.org/blink/webidl
    """ % (idl_filename, str(error)))

        return definitions
Пример #21
0
    def read_idl_file(self, idl_filename):
        """Returns an IdlDefinitions object for an IDL file, without any dependencies.

        The IdlDefinitions object is guaranteed to contain a single
        IdlInterface; it may also contain other definitions, such as
        callback functions and enumerations."""
        ast = blink_idl_parser.parse_file(self.parser, idl_filename)
        if not ast:
            raise Exception('Failed to parse %s' % idl_filename)
        idl_file_basename, _ = os.path.splitext(os.path.basename(idl_filename))
        definitions = IdlDefinitions(idl_file_basename, ast)

        # Validate file contents with filename convention
        # The Blink IDL filenaming convention is that the file
        # <definition_name>.idl MUST contain exactly 1 definition
        # (interface, dictionary or exception), and the definition name must
        # agree with the file's basename, unless it is a partial definition.
        # (e.g., 'partial interface Foo' can be in FooBar.idl).
        targets = (definitions.interfaces.values() +
                   definitions.dictionaries.values())
        number_of_targets = len(targets)
        if number_of_targets != 1:
            raise Exception(
                'Expected exactly 1 definition in file {0}, but found {1}'
                .format(idl_filename, number_of_targets))
        target = targets[0]
        if not target.is_partial and target.name != idl_file_basename:
            raise Exception(
                'Definition name "{0}" disagrees with IDL file basename "{1}".'
                .format(target.name, idl_file_basename))

        # Validate extended attributes
        if not self.extended_attribute_validator:
            return definitions

        try:
            self.extended_attribute_validator.validate_extended_attributes(definitions)
        except IDLInvalidExtendedAttributeError as error:
            raise IDLInvalidExtendedAttributeError("""
IDL ATTRIBUTE ERROR in file:
%s:
    %s
If you want to add a new IDL extended attribute, please add it to:
    %s
and add an explanation to the Blink IDL documentation at:
    http://www.chromium.org/blink/webidl/blink-idl-extended-attributes
    """ % (idl_filename, str(error), EXTENDED_ATTRIBUTES_RELATIVE_PATH))

        return definitions
def main(dir_name):
    #a list includes idl file names and interface name list. 
    idlfname_interface_dict = {}

    #a for statement to find interface names in one idl file.
    for idl_file in find_idl_files(dir_name):
        parser = BlinkIDLParser(debug=False)
        definitions = parse_file(parser, idl_file)
        idlfname_interface = find_interface(definitions,os.path.basename(idl_file))
        
        #if there is a empty dictionary, this program doesn't append it to list_of_interface
        #because find_interface() returns some empty dictionary when there are not some interfaces in a idl file 
        #if not idlfname_interface[1] == []:
	    #idlfname_interface_dict[idlfname_interface[0]] = idlfname_interface[1]
	if not idlfname_interface[1][0]:
	    print 'aaaaaaaaaa'
    return idlfname_interface
Пример #23
0
    def read_idl_file(self, idl_filename):
        """Returns an IdlDefinitions object for an IDL file, without any dependencies.

        The IdlDefinitions object is guaranteed to contain a single
        IdlInterface; it may also contain other definitions, such as
        callback functions and enumerations."""
        ast = blink_idl_parser.parse_file(self.parser, idl_filename)
        if not ast:
            raise Exception('Failed to parse %s' % idl_filename)
        definitions = IdlDefinitions(ast)

        # Validate file contents with filename convention
        # The Blink IDL filenaming convention is that the file
        # <interface_name>.idl MUST contain exactly 1 interface (or exception),
        # and the interface name must agree with the file's basename,
        # unless it is a partial interface.
        # (e.g., 'partial interface Foo' can be in FooBar.idl).
        number_of_interfaces = len(definitions.interfaces)
        if number_of_interfaces != 1:
            raise Exception(
                'Expected exactly 1 interface in file {0}, but found {1}'
                .format(idl_filename, number_of_interfaces))
        interface = next(definitions.interfaces.itervalues())
        idl_file_basename, _ = os.path.splitext(os.path.basename(idl_filename))
        if not interface.is_partial and interface.name != idl_file_basename:
            raise Exception(
                'Interface name "{0}" disagrees with IDL file basename "{1}".'
                .format(interface.name, idl_file_basename))

        # Validate extended attributes
        if not self.extended_attribute_validator:
            return definitions

        try:
            self.extended_attribute_validator.validate_extended_attributes(definitions)
        except IDLInvalidExtendedAttributeError as error:
            raise IDLInvalidExtendedAttributeError(
    """IDL ATTRIBUTE ERROR in file %s:
    %s
If you want to add a new IDL extended attribute, please add it to
    bindings/IDLExtendedAttributes.txt
and add an explanation to the Blink IDL documentation at:
    http://www.chromium.org/blink/webidl/blink-idl-extended-attributes
    """ % (idl_filename, str(error)))

        return definitions
Пример #24
0
    def read_idl_file(self, idl_filename):
        """Returns an IdlDefinitions object for an IDL file, without any dependencies."""
        ast = blink_idl_parser.parse_file(self.parser, idl_filename)
        if not ast:
            raise Exception('Failed to parse %s' % idl_filename)
        definitions = IdlDefinitions(ast)
        if not self.extended_attribute_validator:
            return definitions

        try:
            self.extended_attribute_validator.validate_extended_attributes(definitions)
        except IDLInvalidExtendedAttributeError as error:
            raise IDLInvalidExtendedAttributeError(
    """IDL ATTRIBUTE ERROR in file %s:
    %s
If you want to add a new IDL extended attribute, please add it to
    bindings/IDLExtendedAttributes.txt
and add an explanation to the Blink IDL documentation at:
    http://www.chromium.org/blink/webidl/blink-idl-extended-attributes
    """ % (idl_filename, str(error)))

        return definitions
Пример #25
0
 def setUp(self):
     parser = BlinkIDLParser()
     path = utilities.read_file_to_list(_FILE)[0]
     definitions = parse_file(parser, path)
     self.definition = definitions.GetChildren()[0]
 def setUp(self):
     parser = BlinkIDLParser()
     path = utilities.read_file_to_list(_FILE)[0]
     definitions = parse_file(parser, path)
     self.definition = definitions.GetChildren()[0]
def main(args):
    parser = BlinkIDLParser(debug=True)
    definitions = parse_file(parser, args[0])
    print '=== Tree ==='
    _dump_tree(definitions)
Пример #28
0
 def setUp(self):
     parser = BlinkIDLParser()
     path = os.path.join(
         testdata_path, utilities.read_file_to_list(_FILE)[0])
     definitions = parse_file(parser, path)
     self.definition = definitions.GetChildren()[0]
def main(args):
    parser = BlinkIDLParser(debug=False)
    definitions = parse_file(parser, args[0])
    print '=== Tree ==='
    _dump_tree(definitions)