| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
| |
Extended attributes for constructors and named constructors are now
parsed into the AST as operations ready to be used to generate output.
|
|
|
|
|
|
|
|
|
| |
interface attributes with the putforwards extended attribute call the
setter specified in that extended attribute.
The WebIDL is supposed to ensure the attribute is readonly before
allowing a putforwards but we only warn about this as there are
several examples where readonly is omitted.
|
| |
|
|
|
|
|
| |
Uses annotated AST to put line directives in the generated source so
any code errors in the binding can be easily located.
|
|
|
|
|
|
|
| |
The parser now reports the correct file and line number for
errors. Additionally the @n location structure in rules now has a
filename member in addition to first_line. These members are useful
for adding location information in generated source.
|
| |
|
| |
|
|
|
|
|
|
| |
Instead of c types being opaque strings this makes the bindig parser
understand them. This is necessary for extended attribute parsing in
future but also makes the binding more easily understandable.
|
|
|
|
|
|
| |
It appears that string parameters to operations must be coerced from
other types instead of throwing a type error to conform to expected
behaviour.
|
|
|
|
|
|
| |
This generates routines which correctly handle reading a member from a
dictionary and returning it as the correct c type. Currently the types
"any", "user" and "sequence" remain unhandled.
|
| |
|
| |
|
| |
|
|
|
|
| |
The dictionary implementation is presetnt but incomplete.
|
|
|
|
|
|
| |
The interface map is now completely inapropriately named and is in
fact now an intermediate representation of the webidl and bindings
kept in a sorted order.
|
|
|
|
|
|
| |
This adds correct parsing of dictionaries into the AST. These entries
in the AST are not yet used but do not affect generation of
interfaces.
|
|
|
|
|
|
|
| |
Arguments passed to basic operations are checked for type if they are
strings, bolleans or numbers.
Operations that are overloaded, special or have elipsis are not checked.
|
| |
|
|
|
|
|
|
|
| |
Previously every reference to a constant magic string value was a
separate and the compiler was not good at making them all common. This
makes the string constants an explicit reference to a single instance
of the string.
|
|
|
|
|
|
|
|
|
|
| |
For normal operations (not special, overloaded or varadic) check the
number of parameters passed is correct and add default values if
necessary.
This means every normal operation will always have a complete set of
parameters and throw an error if there are too few non optional
arguments.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This extends the interface map (the intermediate representation) to
have information on every operations arguments including overloading
and optional arguments.
This is important to allow automated checking of passed parameters
numbers and types in future.
|
| |
|
|
|
|
|
| |
This allows additional cdata to be added to the generated prototype
constructor.
|
|
|
|
|
|
|
| |
If the binding implementation of a method or property is empty then
generate a default implementation (currently simply a return
statement) otherwise the binding implementation must be complete including
a return statement.
|
| |
|
|
|
|
| |
strcmp null
|
|
|
|
|
|
| |
The initialiser parameter list parsing was missing creation of a
parameter node in the AST and the parameter iterator was looking for a
method node instead of a paramter node.
|
| |
|
| |
|
|
|
|
|
|
| |
These allow a closed set of functions used by the automatic bindings
and gives an external interface allowing all the generated prototypes to be
created in the correct order
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This generator creates all the output files and generates the
finalisers for every class.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This constructs an ordered list of all interfaces in their dependency
order. The topological sort ordering is derived from the interfaces
inheritance.
The resulting table allows the generation phase to easily map
interfaces to classes defined in the binding with a useful ordering.
Additionally it was noticed that the uievent IDL was missing so that
has now been added and allows for a much more complete graph of
interfaces to be constructed.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This loads the WebIDL specified in the bindings into an Abstract
Syntax Tree (AST) and performs the mixin operations for implements.
Additionally the specs now use a slightly extended IDL syntax. Instead
of wholesale implementing the second edition of the IDL spec the
parser has been updated to cope with iterator and Promise keywords as
those are the only changes used in the dom and html specifications.
A bug was also fixed in the lexer where negative int literals were
not recognised.
|