pywebidl2
Description
This is a tool for the Web IDL language.
Quick start
pip install pywebidl2
Usage
Usage: pywebidl2 [OPTIONS] FILE
Options:
-a, --action [parse|validate]
--help Show this message and exit.
For Developer
Antlr4
Download ANTLR4 tool
Create a python parser and lexer.
make parser
Tests
make test
Example
Parser
from pprint import pprint
from pywebidl2 import parse
idl = '''
interface B {
void g([AllowAny] DOMString s);
};
'''
pprint(parse(idl))
[
{
"type": "interface",
"name": "B",
"inheritance": null,
"members": [
{
"type": "operation",
"name": "g",
"idl_type": {
"type": "return-type",
"ext_attrs": [],
"generic": "",
"nullable": false,
"union": false,
"idl_type": "void"
},
"arguments": [
{
"type": "argument",
"name": "s",
"ext_attrs": [
{
"type": "extended-attribute",
"name": "AllowAny",
"rhs": null,
"arguments": []
}
],
"idl_type": {
"type": "argument-type",
"ext_attrs": [],
"generic": "",
"nullable": false,
"union": false,
"idl_type": "DOMString"
},
"default": null,
"optional": false,
"variadic": false
}
],
"ext_attrs": [],
"special": ""
}
],
"ext_attrs": [],
"partial": false
}
]
Documentation
See original parser
Contributing
Any help is welcome and appreciated.
License
pywebidl2 is licensed under the terms of the MIT License (see the file LICENSE).