forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			61 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			61 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
| 
								 | 
							
								package webidl;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef Data = Array<Definition>;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef Position = {
							 | 
						||
| 
								 | 
							
									var file : String;
							 | 
						||
| 
								 | 
							
									var line : Int;
							 | 
						||
| 
								 | 
							
									var pos : Int;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef Definition = {
							 | 
						||
| 
								 | 
							
									var pos : Position;
							 | 
						||
| 
								 | 
							
									var kind : DefinitionKind;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum DefinitionKind {
							 | 
						||
| 
								 | 
							
									DInterface( name : String, attrs : Array<Attrib>, fields : Array<Field> );
							 | 
						||
| 
								 | 
							
									DImplements( type : String, interfaceName : String );
							 | 
						||
| 
								 | 
							
									DEnum( name : String, values : Array<String> );
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef Field = {
							 | 
						||
| 
								 | 
							
									var name : String;
							 | 
						||
| 
								 | 
							
									var kind : FieldKind;
							 | 
						||
| 
								 | 
							
									var pos : Position;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum FieldKind {
							 | 
						||
| 
								 | 
							
									FMethod( args : Array<FArg>, ret : TypeAttr );
							 | 
						||
| 
								 | 
							
									FAttribute( t : TypeAttr );
							 | 
						||
| 
								 | 
							
									DConst( name : String, type : Type, value : String );
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef FArg = { name : String, opt : Bool, t : TypeAttr };
							 | 
						||
| 
								 | 
							
								typedef TypeAttr = { var t : Type; var attr : Array<Attrib>; };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum Type {
							 | 
						||
| 
								 | 
							
									TVoid;
							 | 
						||
| 
								 | 
							
									TInt;
							 | 
						||
| 
								 | 
							
									TShort;
							 | 
						||
| 
								 | 
							
									TFloat;
							 | 
						||
| 
								 | 
							
									TDouble;
							 | 
						||
| 
								 | 
							
									TBool;
							 | 
						||
| 
								 | 
							
									TAny;
							 | 
						||
| 
								 | 
							
									TVoidPtr;
							 | 
						||
| 
								 | 
							
									TCustom( id : String );
							 | 
						||
| 
								 | 
							
									TArray( t : Type );
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								enum Attrib {
							 | 
						||
| 
								 | 
							
									// fields
							 | 
						||
| 
								 | 
							
									AValue;
							 | 
						||
| 
								 | 
							
									ARef;
							 | 
						||
| 
								 | 
							
									AConst;
							 | 
						||
| 
								 | 
							
									AOperator( op : String );
							 | 
						||
| 
								 | 
							
									// interfaces
							 | 
						||
| 
								 | 
							
									ANoDelete;
							 | 
						||
| 
								 | 
							
									APrefix( prefix : String );
							 | 
						||
| 
								 | 
							
									AJSImplementation( name : String );
							 | 
						||
| 
								 | 
							
								}
							 |