path: root/src/nsgenbind-ast.h
Commit message (Collapse)AuthorAgeFilesLines
* restructure AST node creation to avoid castsVincent Sanders2016-11-271-0/+11
| | | | | | | | | | | | | | | | This changes Abstract Syntax Tree node creation for both webidl and genbind syntax tress. If a node is to be created with a numeric value instead of a pointer a separate API is now used instead of casting through void. This fixes parsing and AST building on big endian 64bit platforms where casting through void, which is completely undefined behaviour, generates different and non-functioning code. The solution in this patch is properly portable and correct without relying on casting at all. Thanks to James Clarke <> for the original debugging and patch demonstrating how to work round the bug.
* annotates binding AST with source linenumber and fileVincent Sanders2015-09-281-0/+3
| | | | | Uses annotated AST to put line directives in the generated source so any code errors in the binding can be easily located.
* Simplify genbind AST handling of preface, prologue, epilogue and postfaceVincent Sanders2015-09-261-11/+11
* Make the binding parser understand c typesVincent Sanders2015-09-251-25/+1
| | | | | | 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.
* Add ptototype method type to bindingVincent Sanders2015-08-051-5/+6
| | | | | This allows additional cdata to be added to the generated prototype constructor.
* Add property generation and add it to prototype constructionVincent Sanders2015-07-291-5/+47
* Build interface map allowing for correct dependency generationVincent Sanders2015-07-241-1/+1
| | | | | | | | | | | | | 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.
* chnage binding AST to put methds inside class nodesVincent Sanders2015-07-221-0/+4
* Change binding grammar to new approach.Vincent Sanders2015-07-211-48/+65
* construct topoligicaly consitant (dependancy correct) interface mapVincent Sanders2014-05-161-0/+15
| | | | use dependancy map to generate javascript prototype for all interfaces in the binding.
* move flag indicating jsapi object for an interface should be a global from ↵Vincent Sanders2014-05-161-16/+26
| | | | api definition to the interface flags
* add flags to interface within bindingVincent Sanders2014-05-161-4/+29
* Fix building for Win32John-Mark Bell2014-01-171-0/+5
* Add epilogue outputVincent Sanders2013-01-021-0/+2
| | | | Add header guard generation
* name and docuemnt the binding property attributeVincent Sanders2012-11-211-1/+1
* make property shared status and type handling selection genericVincent Sanders2012-11-211-3/+13
* implement unshared output in property specifierVincent Sanders2012-11-201-3/+36
* add unshared optionVincent Sanders2012-11-201-2/+4
* implement basic property getter functionalityVincent Sanders2012-10-291-0/+2
* add internal and API to binding languageVincent Sanders2012-10-291-0/+2
| | | | split out class operation, initialisation and new generation
* The name of teh tool is nsgenbind correct this everywhereVincent Sanders2012-10-231-0/+78