Cface__CDefinitionParser.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Thu, 10 Jul 2008 07:31:14 +0000
changeset 5 c110eef5b9ef
parent 4 fc74bd43a3eb
child 6 ae25dce94003
permissions -rw-r--r--
- externalization of libraryName (now supports unix & win32 simultaneously) - basi support for accessing structure fields

"{ Package: 'cvut:fel/cface' }"

"{ NameSpace: Cface }"

SmaCC::SmaCCParser subclass:#CDefinitionParser
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'Cface-Parser'
!


!CDefinitionParser class methodsFor:'generated-accessing'!

scannerClass
	^Cface::CDefinitionScanner

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!CDefinitionParser class methodsFor:'generated-comments'!

parserDefinitionComment

	"%start DefinitionFile;

DefinitionFile:
        Definition* 
        { CDefinitionFileNode new definitions: '1' } ;

Definition:       
          Function { '1' }               
        | Struct { '1' }                 
        | Union { '1' }          
        | Enum { '1' }           
        | Typedef { '1' }                
        ;

Generated:
        ""#Generated"" ""from:"" <file> 'file' { file value } 
        ;

Function:
        ""("" ""function"" <name> 'name' ""("" Argument* 'arguments' "")"" Return 'return' "")"" 
                { CFunctionNode new 
                                cName:(name  value);
                                arguments:arguments;
                                return:return }
        ;
        
        
Argument:
        ""("" ""argument"" ""("" Type 'type' "")"" <name> 'name' "")"" 
                { (CArgumentNode new
                                cName:(name value);
                                type:type) }
        ;                               


Return:
        ""("" ""return"" Type 'Type' "")"" { Type } 
        ;

FunctionPrototype:
        ""("" ""function-type"" <name> 'name' ""("" FunctionPrototypeArgument* 'arguments' "")"" Return 'return' "")"" 
                { CFunctionTypeNode new
                                cName:(name  value); 
                                arguments:arguments;
                                return:return } 
        ;


FunctionPrototypeArgument:
        ""("" ""argument"" ""("" Type  "")"" "")"" 
                { CArgumentNode new
                                cName:nil; 
                                type:'4'        }
        ;

Type:
          Const 
                { '1' } 
        | BuiltinType
                { '1' }
        | Pointer 
                { '1' } 
        | Array
                { '1' } 
        | FunctionPrototype     
                { '1' } 
        | Struct
                { '1' }         
        | Union
                { '1' }         
        | Enum
                { '1' }         
        | <name>
                { CUserDefinedTypeNode new cName: '1' value }
        ;

BuiltinType:
     ""unsigned"" BuiltinType
                { CUnsignedNode new type: '2' }                 
  |  ""signed"" BuiltinType
                { '2' }     
  | ""long"" BuiltinType
                { CLongNode new type: '2' }             
  | ""short"" BuiltinType
                { CShortNode new type: '2' }                            
        | ""int""
                { CIntNode new }
        | ""char""
                { CCharNode new }                                       
        | ""double""
                { CDoubleNode new }                                     
        | ""float""
                { CFloatNode new }                                      
        | ""void""
                { CVoidNode new }                                       
        | ""wchar_t""
                { CWCharNode new }                                       

        ;



Array:
        ""("" ""array"" ""("" Type "")"" <number> "")"" 
                { CArrayNode new
                                type:'4';
                                size:'6' value } 
        ;

Const:
        ""const"" Type 
                { CConstNode new type: '2' }
        ;
        
        
                                
Pointer:
        ""("" ""pointer-to"" Type "")"" 
                { CPointerNode new type:'3' } ;


Struct:
                ""("" ""struct"" [ <name> ] 'name' StructField* 'fields' "")"" 
                { CStructNode new
                                cName:(name ifNotNil:[name value]);
                                fields:fields;
                                foreign:false

 } 
|                 ""("" ""struct-foreign"" [ <name> ] 'name' StructField* 'fields' "")"" 
                { CStructNode new
                                cName:(name ifNotNil:[name value]);
                                fields:fields;
                                foreign:true

 } 

        ;



Union:
                ""("" ""union"" [ <name> ] 'name' StructField* 'fields' "")"" 
                { CUnionNode new 
                                cName:(name ifNotNil:[name value]);
                                fields:fields;
                                foreign: false
                 } 
    |   ""("" ""union-foreign"" [ <name> ] 'name' StructField* 'fields' "")"" 
                { CUnionNode new 
                                cName:(name ifNotNil:[name value]);
                                fields:fields;
                                foreign:true
 } 

        ;



        
StructField:
          ""("" ""field"" ""("" Type  "")"" <name>  ""@"" <number> "")""
                { CStructFieldNode new
                                cName:('6' value);
                                offset: '8' value asNumber;
                                type:'4' }
    | ""("" ""field"" ""("" Type  "")"" ""value"" ""@"" <number> "")""
                { CStructFieldNode new
                                cName:('6' value);
                                offset: '8' value asNumber;
                                type:'4' }
    | ""("" ""field"" ""("" Type  "")"" ""function"" ""@"" <number> "")""
                { CStructFieldNode new
                                cName:('6' value);
                                offset: '8' value asNumber;    
                                type:'4' }
        ;
        
                

Enum:
                ""("" ""enum"" 'foreign' [ <name> ] 'name'EnumValue* 'fields' "")"" 
                { CEnumNode new
                                cName:(name ifNotNil:[name value]);
                                values:fields;
                                foreign: false;
                                typedef:false
                }
        |       ""("" ""enum-foreign"" [ <name> ] 'name'EnumValue* 'fields' "")"" 
                { CEnumNode new
                                cName:(name ifNotNil:[name value]);
                                values:fields;
                                foreign: true;
                                typedef:false
                }

        ;



EnumValue:
        ""("" ""value"" ""("" <name> 'name' "")"" <number> 'number' "")""
                { (CEnumValueNode new 
                                cName:(name value);
                                intValue:(number value)) } ;

Typedef:
        ""("" ""typedef""  <name> 'name' Type 'type' "")"" 
        { CTypedefNode new
                        cName:(name value);
                        type:type} 
    | ""("" ""typedef-foreign"" <name> 'name' Type 'type' "")"" 
        { CTypedefNode new
                        cName:(name value);
                        type:type;
                        foreign:true } 

    ;
"

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!CDefinitionParser class methodsFor:'generated-starting states'!

startingStateForDefFile
	^1

    "Modified: / 10-02-2008 / 10:29:48 / janfrog"
!

startingStateForDefinitionFile
	^2

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!CDefinitionParser methodsFor:'accessing'!

nodeStack
    ^ nodeStack

    "Created: / 02-11-2007 / 12:34:17 / haja"
! !

!CDefinitionParser methodsFor:'generated-reduction actions'!

reduceActionForArgument1:nodes 
    ^ ((CArgumentNode new)
        cName:((nodes at:6) value);
        type:(nodes at:4))

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForArgument2:nodes 
    ^ FunctionArgumentNode cName:((nodes at:6) value) id:(nodes at:4)

    "Created: / 10-02-2008 / 10:26:31 / janfrog"
    "Modified: / 10-02-2008 / 19:08:18 / janfrog"
!

reduceActionForArguments1:nodes 
    ^ OrderedCollection new

    "Modified: / 28-11-2007 / 17:11:19 / haja"
!

reduceActionForArguments2:nodes 
    ^ (nodes at:6)
        addFirst:(FunctionArgumentNode cName:((nodes at:4) value) id:(nodes at:2));
        yourself

    "Modified: / 28-11-2007 / 17:11:19 / haja"
    "Modified: / 10-02-2008 / 19:08:18 / janfrog"
!

reduceActionForArray1:nodes 
    ^ (CArrayNode new)
        type:(nodes at:4);
        size:(nodes at:6) value

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForBuiltinType10:nodes 
    ^ CWCharNode new

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForBuiltinType1:nodes 
    ^ CUnsignedNode new type:(nodes at:2)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForBuiltinType2:nodes 
    ^ nodes at:2

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForBuiltinType3:nodes 
    ^ CLongNode new type:(nodes at:2)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForBuiltinType4:nodes 
    ^ CShortNode new type:(nodes at:2)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForBuiltinType5:nodes 
    ^ CIntNode new

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForBuiltinType6:nodes 
    ^ CCharNode new

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForBuiltinType7:nodes 
    ^ CDoubleNode new

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForBuiltinType8:nodes 
    ^ CFloatNode new

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForBuiltinType9:nodes 
    ^ CVoidNode new

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForConst1:nodes 
    ^ CConstNode new type:(nodes at:2)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForDefBody1:nodes 
    ^ OrderedCollection new

    "Modified: / 10-02-2008 / 10:32:17 / janfrog"
!

reduceActionForDefBody2:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1);
        yourself

    "Modified: / 10-02-2008 / 10:32:17 / janfrog"
!

reduceActionForDefBody3:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1);
        yourself

    "Modified: / 10-02-2008 / 10:32:17 / janfrog"
!

reduceActionForDefBody4:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1);
        yourself

    "Modified: / 10-02-2008 / 10:32:17 / janfrog"
!

reduceActionForDefBody5:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1);
        yourself

    "Modified: / 10-02-2008 / 10:32:17 / janfrog"
!

reduceActionForDefBody6:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1);
        yourself

    "Modified: / 10-02-2008 / 10:32:17 / janfrog"
!

reduceActionForDefBody7:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1);
        yourself

    "Modified: / 10-02-2008 / 10:32:17 / janfrog"
!

reduceActionForDefBody8:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1);
        yourself

    "Modified: / 10-02-2008 / 10:32:17 / janfrog"
!

reduceActionForDefBody9:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1);
        yourself

    "Modified: / 10-02-2008 / 10:32:17 / janfrog"
!

reduceActionForDefFile1:nodes 
    ^ FileNode generatedFrom:(nodes at:1) defBody:(nodes at:2)

    "Modified: / 10-02-2008 / 10:29:48 / janfrog"
!

reduceActionForDefinition1:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForDefinition2:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForDefinition3:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForDefinition4:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForDefinition5:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForDefinition6:nodes 
    ^ nodes at:1

    "Modified: / 10-02-2008 / 19:43:38 / janfrog"
!

reduceActionForDefinition7:nodes 
    ^ nodes at:1

    "Modified: / 10-02-2008 / 19:43:38 / janfrog"
!

reduceActionForDefinition8:nodes 
    ^ nodes at:1

    "Modified: / 10-02-2008 / 19:43:38 / janfrog"
!

reduceActionForDefinitionFile1:nodes 
    ^ CDefinitionFileNode new definitions:(nodes at:1)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForEnum1:nodes 
    ^ (CEnumNode new)
        cName:((nodes at:3) ifNotNil:[ (nodes at:3) value ]);
        values:(nodes at:4);
        foreign:false;
        typedef:false

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForEnum2:nodes 
    ^ (CEnumNode new)
        cName:((nodes at:3) ifNotNil:[ (nodes at:3) value ]);
        values:(nodes at:4);
        foreign:true;
        typedef:false

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForEnumField1:nodes 
    ^ (CEnumFieldNode name:((nodes at:4) value) number:((nodes at:6) value))

    "Modified: / 10-02-2008 / 10:48:29 / janfrog"
!

reduceActionForEnumFields1:nodes 
    ^ OrderedCollection new

    "Modified: / 10-02-2008 / 10:26:48 / janfrog"
!

reduceActionForEnumFields2:nodes 
    ^ (nodes at:8)
        addFirst:(EnumFieldNode name:((nodes at:4) value)
                    number:((nodes at:6) value));
        yourself

    "Modified: / 10-02-2008 / 10:26:49 / janfrog"
!

reduceActionForEnumValue1:nodes 
    ^ ((CEnumValueNode new)
        cName:((nodes at:4) value);
        intValue:((nodes at:6) value))

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForFunction1:nodes 
    ^ (CFunctionNode new)
        cName:((nodes at:3) value);
        arguments:(nodes at:5);
        return:(nodes at:7)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForFunctionArguments1:nodes 
    ^ OrderedCollection new

    "Modified: / 10-02-2008 / 10:25:11 / janfrog"
!

reduceActionForFunctionArguments2:nodes 
    ^ (nodes at:8)
        addFirst:(FunctionArgumentNode cName:((nodes at:6) value) id:(nodes at:4));
        yourself

    "Modified: / 10-02-2008 / 19:08:18 / janfrog"
!

reduceActionForFunctionPrototype1:nodes 
    ^ (CFunctionTypeNode new)
        cName:((nodes at:3) value);
        arguments:(nodes at:5);
        return:(nodes at:7)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForFunctionPrototypeArgument1:nodes 
    ^ (CArgumentNode new)
        cName:nil;
        type:(nodes at:4)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForFunctionPrototypeArguments1:nodes 
    ^ OrderedCollection new

    "Modified: / 10-02-2008 / 10:48:29 / janfrog"
!

reduceActionForFunctionPrototypeArguments2:nodes 
    ^ (nodes at:7)
        addFirst:(CArgumentNode cName:nil id:(nodes at:4));
        yourself

    "Modified: / 10-02-2008 / 19:08:18 / janfrog"
!

reduceActionForGenerated1:nodes 
    ^ (nodes at:3) value

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForGroup_____Function___Struct___Enum___Union___Typedef1:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_____Function___Struct___Enum___Union___Typedef2:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_____Function___Struct___Enum___Union___Typedef3:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_____Function___Struct___Enum___Union___Typedef4:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_____Function___Struct___Enum___Union___Typedef5:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_____Pointer___Array___Function___Type1:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_____Pointer___Array___Function___Type2:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_____Pointer___Array___Function___Type3:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_____Pointer___Array___Function___Type4:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_____StructField___Struct___Union1:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_____StructField___Struct___Union2:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_____StructField___Struct___Union3:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_____UnionField___Struct___Union1:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_____UnionField___Struct___Union2:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_____UnionField___Struct___Union3:nodes 
    ^ nodes at:1

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForGroup_______foreign_1:nodes 
    ^ nodes at:1

    "Modified: / 17-02-2008 / 18:45:28 / janfrog"
!

reduceActionForGroup_______type_1:nodes 
    ^ nodes at:1

    "Created: / 05-12-2007 / 18:36:56 / haja"
!

reduceActionForGroup_______typedef_1:nodes 
    ^ nodes at:1

    "Created: / 05-12-2007 / 18:31:48 / haja"
!

reduceActionForGroup______foreign_1:nodes 
    ^ nodes at:1

    "Modified: / 19-11-2007 / 09:51:07 / haja"
!

reduceActionForGroup______name_1:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForGroup______number_____name_1:nodes 
    ^ nodes at:1

    "Modified: / 29-10-2007 / 10:36:04 / haja"
!

reduceActionForGroup______number_____name_2:nodes 
    ^ nodes at:1

    "Modified: / 29-10-2007 / 10:36:04 / haja"
!

reduceActionForGroup______type_1:nodes 
    ^ nodes at:1

    "Created: / 05-12-2007 / 18:45:57 / haja"
!

reduceActionForGroup______type__1:nodes 
    ^ nodes at:1

    "Modified: / 05-12-2007 / 18:45:57 / haja"
!

reduceActionForGroup______typedef__1:nodes 
    ^ nodes at:1

    "Modified: / 12-02-2008 / 21:56:04 / janfrog"
!

reduceActionForId1:nodes 
    ^ nodes at:1

    "Modified: / 10-02-2008 / 10:48:29 / janfrog"
!

reduceActionForId2:nodes 
    ^ nodes at:1

    "Modified: / 10-02-2008 / 10:48:29 / janfrog"
!

reduceActionForId3:nodes 
    ^ nodes at:1

    "Modified: / 10-02-2008 / 10:48:29 / janfrog"
!

reduceActionForId4:nodes 
    ^ nodes at:1

    "Modified: / 10-02-2008 / 10:48:29 / janfrog"
!

reduceActionForId5:nodes 
    ^ IdNode names:(nodes at:1)

    "Modified: / 10-02-2008 / 10:48:29 / janfrog"
!

reduceActionForLocalStruct1:nodes 
    ^ StructNode 
        name:((nodes at:3) value)
        fields:(nodes at:4)
        local:true
        foreign:((nodes at:2) isNil not)
        typedef:false

    "Modified: / 10-02-2008 / 09:46:55 / janfrog"
!

reduceActionForLocalUnion1:nodes 
    ^ UnionNode 
        name:((nodes at:3) value)
        fields:(nodes at:4)
        local:true
        foreign:((nodes at:2) isNil not)
        typedef:false

    "Modified: / 10-02-2008 / 09:46:55 / janfrog"
!

reduceActionForLong1:nodes 
    ^ CUnsignedNode new type:(nodes at:1)

    "Created: / 10-02-2008 / 19:50:10 / janfrog"
!

reduceActionForNames1:nodes 
    ^ OrderedCollection new

    "Modified: / 10-02-2008 / 10:48:29 / janfrog"
!

reduceActionForNames2:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1) value;
        yourself

    "Modified: / 10-02-2008 / 10:48:29 / janfrog"
!

reduceActionForOptional__Group_______foreign_1:nodes 
    ^ nil

    "Modified: / 17-02-2008 / 18:45:28 / janfrog"
!

reduceActionForOptional__Group_______foreign_2:nodes 
    ^ nodes at:1

    "Modified: / 17-02-2008 / 18:45:28 / janfrog"
!

reduceActionForOptional__Group_______type_1:nodes 
    ^ nil

    "Created: / 05-12-2007 / 18:36:56 / haja"
!

reduceActionForOptional__Group_______type_2:nodes 
    ^ nodes at:1

    "Created: / 05-12-2007 / 18:36:56 / haja"
!

reduceActionForOptional__Group_______typedef_1:nodes 
    ^ nil

    "Created: / 05-12-2007 / 18:31:48 / haja"
!

reduceActionForOptional__Group_______typedef_2:nodes 
    ^ nodes at:1

    "Created: / 05-12-2007 / 18:31:48 / haja"
!

reduceActionForOptional__Group______foreign_1:nodes 
    ^ nil

    "Modified: / 19-11-2007 / 09:51:07 / haja"
!

reduceActionForOptional__Group______foreign_2:nodes 
    ^ nodes at:1

    "Modified: / 19-11-2007 / 09:51:07 / haja"
!

reduceActionForOptional__Group______name_1:nodes 
    ^ nil

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForOptional__Group______name_2:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForOptional__Group______type_1:nodes 
    ^ nil

    "Created: / 05-12-2007 / 18:45:57 / haja"
!

reduceActionForOptional__Group______type_2:nodes 
    ^ nodes at:1

    "Created: / 05-12-2007 / 18:45:57 / haja"
!

reduceActionForOptional__Group______type__1:nodes 
    ^ nil

    "Modified: / 05-12-2007 / 18:45:57 / haja"
!

reduceActionForOptional__Group______type__2:nodes 
    ^ nodes at:1

    "Modified: / 05-12-2007 / 18:45:57 / haja"
!

reduceActionForOptional__Group______typedef__1:nodes 
    ^ nil

    "Modified: / 12-02-2008 / 21:56:04 / janfrog"
!

reduceActionForOptional__Group______typedef__2:nodes 
    ^ nodes at:1

    "Modified: / 12-02-2008 / 21:56:04 / janfrog"
!

reduceActionForOptional___local_1:nodes 
    ^ nil

    "Modified: / 29-10-2007 / 11:05:17 / haja"
!

reduceActionForOptional___local_2:nodes 
    ^ nodes at:1

    "Modified: / 29-10-2007 / 11:05:17 / haja"
!

reduceActionForPointer1:nodes 
    ^ CPointerNode new type:(nodes at:3)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForRepeat_Multiple___name_1:nodes 
    ^ OrderedCollection with:(nodes at:1)

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForRepeat_Multiple___name_2:nodes 
    ^ (nodes at:1)
        add:(nodes at:2);
        yourself

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForRepeat__Argument1:nodes 
    ^ OrderedCollection new

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForRepeat__Argument2:nodes 
    ^ (nodes at:1)
        add:(nodes at:2);
        yourself

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForRepeat__Definition1:nodes 
    ^ OrderedCollection new

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForRepeat__Definition2:nodes 
    ^ (nodes at:1)
        add:(nodes at:2);
        yourself

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForRepeat__EnumField1:nodes 
    ^ OrderedCollection new

    "Modified: / 10-02-2008 / 10:48:29 / janfrog"
!

reduceActionForRepeat__EnumField2:nodes 
    ^ (nodes at:1)
        add:(nodes at:2);
        yourself

    "Modified: / 10-02-2008 / 10:48:29 / janfrog"
!

reduceActionForRepeat__EnumValue1:nodes 
    ^ OrderedCollection new

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForRepeat__EnumValue2:nodes 
    ^ (nodes at:1)
        add:(nodes at:2);
        yourself

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForRepeat__FunctionPrototypeArgument1:nodes 
    ^ OrderedCollection new

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForRepeat__FunctionPrototypeArgument2:nodes 
    ^ (nodes at:1)
        add:(nodes at:2);
        yourself

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForRepeat__Group_____Function___Struct___Enum___Union___Typedef1:nodes 
    ^ OrderedCollection new

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForRepeat__Group_____Function___Struct___Enum___Union___Typedef2:nodes 
    ^ (nodes at:1)
        add:(nodes at:2);
        yourself

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForRepeat__Group_____StructField___Struct___Union1:nodes 
    ^ OrderedCollection new

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForRepeat__Group_____StructField___Struct___Union2:nodes 
    ^ (nodes at:1)
        add:(nodes at:2);
        yourself

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForRepeat__Group_____UnionField___Struct___Union1:nodes 
    ^ OrderedCollection new

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForRepeat__Group_____UnionField___Struct___Union2:nodes 
    ^ (nodes at:1)
        add:(nodes at:2);
        yourself

    "Created: / 25-10-2007 / 18:05:35 / haja"
!

reduceActionForRepeat__StructField1:nodes 
    ^ OrderedCollection new

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForRepeat__StructField2:nodes 
    ^ (nodes at:1)
        add:(nodes at:2);
        yourself

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForReturn1:nodes 
    ^ nodes at:3

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForStruct1:nodes 
    ^ (CStructNode new)
        cName:((nodes at:3) ifNotNil:[ (nodes at:3) value ]);
        fields:(nodes at:4);
        foreign:false

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForStruct2:nodes 
    ^ (CStructNode new)
        cName:((nodes at:3) ifNotNil:[ (nodes at:3) value ]);
        fields:(nodes at:4);
        foreign:true

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForStructField1:nodes 
    ^ (CStructFieldNode new)
        cName:((nodes at:6) value);
        offset:(nodes at:8) value asNumber;
        type:(nodes at:4)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForStructField2:nodes 
    ^ (CStructFieldNode new)
        cName:((nodes at:6) value);
        offset:(nodes at:8) value asNumber;
        type:(nodes at:4)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForStructField3:nodes 
    ^ (CStructFieldNode new)
        cName:((nodes at:6) value);
        offset:(nodes at:8) value asNumber;
        type:(nodes at:4)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForStructField4:nodes 
    ^ (nodes at:1) local:true

    "Modified: / 10-02-2008 / 10:00:46 / janfrog"
!

reduceActionForStructFields1:nodes 
    ^ OrderedCollection new

    "Modified: / 10-02-2008 / 09:36:44 / janfrog"
!

reduceActionForStructFields2:nodes 
    ^ (nodes at:6)
        addFirst:(StructFieldNode cName:((nodes at:4) value) id:(nodes at:2));
        yourself

    "Modified: / 10-02-2008 / 19:08:18 / janfrog"
!

reduceActionForStructFields3:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1);
        yourself

    "Modified: / 10-02-2008 / 09:36:44 / janfrog"
!

reduceActionForStructFields4:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1);
        yourself

    "Modified: / 10-02-2008 / 09:36:44 / janfrog"
!

reduceActionForStructOrUnionFields1:nodes 
    ^ (nodes at:1)
        add:(nodes at:2);
        yourself

    "Modified: / 10-02-2008 / 10:21:30 / janfrog"
!

reduceActionForStructOrUnionFields2:nodes 
    ^ OrderedCollection new

    "Modified: / 10-02-2008 / 10:21:30 / janfrog"
!

reduceActionForStructOrUnionFields3:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1);
        yourself

    "Modified: / 10-02-2008 / 09:42:27 / janfrog"
!

reduceActionForStructOrUnionFields4:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1);
        yourself

    "Modified: / 10-02-2008 / 09:42:27 / janfrog"
!

reduceActionForType1:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForType2:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForType3:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForType4:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForType5:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForType6:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForType7:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForType8:nodes 
    ^ nodes at:1

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForType9:nodes 
    ^ CUserDefinedTypeNode new cName:(nodes at:1) value

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForTypedef1:nodes 
    ^ (CTypedefNode new)
        cName:((nodes at:3) value);
        type:(nodes at:4)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForTypedef2:nodes 
    ^ (CTypedefNode new)
        cName:((nodes at:3) value);
        type:(nodes at:4);
        foreign:true

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForTypedefEnum1:nodes 
    ^ CEnumNode 
        name:((nodes at:4) value)
        fields:(nodes at:5)
        foreign:((nodes at:3) isNil not)
        typedef:true

    "Modified: / 10-02-2008 / 10:48:29 / janfrog"
!

reduceActionForTypedefStruct1:nodes 
    ^ CStructNode 
        name:((nodes at:4) value)
        fields:(nodes at:5)
        local:false
        foreign:((nodes at:3) isNil not)
        typedef:true

    "Modified: / 10-02-2008 / 10:48:29 / janfrog"
!

reduceActionForTypedefUnion1:nodes 
    ^ CUnionNode 
        name:((nodes at:3) value)
        fields:(nodes at:4)
        local:false
        foreign:((nodes at:2) isNil not)
        typedef:true

    "Modified: / 10-02-2008 / 10:48:29 / janfrog"
!

reduceActionForUnion1:nodes 
    ^ (CUnionNode new)
        cName:((nodes at:3) ifNotNil:[ (nodes at:3) value ]);
        fields:(nodes at:4);
        foreign:false

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForUnion2:nodes 
    ^ (CUnionNode new)
        cName:((nodes at:3) ifNotNil:[ (nodes at:3) value ]);
        fields:(nodes at:4);
        foreign:true

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

reduceActionForUnionFields1:nodes 
    ^ OrderedCollection new

    "Modified: / 10-02-2008 / 09:36:44 / janfrog"
!

reduceActionForUnionFields2:nodes 
    ^ (nodes at:6)
        addFirst:(UnionFieldNode cName:((nodes at:4) value) id:(nodes at:2));
        yourself

    "Modified: / 10-02-2008 / 19:08:18 / janfrog"
!

reduceActionForUnionFields3:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1);
        yourself

    "Modified: / 10-02-2008 / 09:36:44 / janfrog"
!

reduceActionForUnionFields4:nodes 
    ^ (nodes at:2)
        addFirst:(nodes at:1);
        yourself

    "Modified: / 10-02-2008 / 09:36:44 / janfrog"
!

reduceActionForUnsigned1:nodes 
    ^ CUnsignedNode new type:(nodes at:1)

    "Modified: / 10-02-2008 / 19:50:10 / janfrog"
! !

!CDefinitionParser methodsFor:'generated-tables'!

reduceTable
	^#(
#(38 5 #reduceActionForStruct1:)
#(38 5 #reduceActionForStruct2:)
#(39 5 #reduceActionForUnion1:)
#(39 5 #reduceActionForUnion2:)
#(40 5 #reduceActionForEnum1:)
#(40 5 #reduceActionForEnum2:)
#(41 5 #reduceActionForTypedef1:)
#(41 5 #reduceActionForTypedef2:)
#(42 8 #reduceActionForFunction1:)
#(43 3 #reduceActionForGenerated1:)
#(44 1 #reduceActionForDefinition1:)
#(44 1 #reduceActionForDefinition2:)
#(44 1 #reduceActionForDefinition3:)
#(44 1 #reduceActionForDefinition4:)
#(44 1 #reduceActionForDefinition5:)
#(45 1 #reduceFor:)
#(46 0 #'reduceActionForRepeat__Argument1:')
#(46 2 #'reduceActionForRepeat__Argument2:')
#(47 4 #reduceActionForReturn1:)
#(48 1 #reduceActionForType1:)
#(48 1 #reduceActionForType2:)
#(48 1 #reduceActionForType3:)
#(48 1 #reduceActionForType4:)
#(48 1 #reduceActionForType5:)
#(48 1 #reduceActionForType6:)
#(48 1 #reduceActionForType7:)
#(48 1 #reduceActionForType8:)
#(48 1 #reduceActionForType9:)
#(49 6 #reduceActionForFunctionPrototypeArgument1:)
#(50 0 #'reduceActionForRepeat__FunctionPrototypeArgument1:')
#(50 2 #'reduceActionForRepeat__FunctionPrototypeArgument2:')
#(51 8 #reduceActionForFunctionPrototype1:)
#(52 2 #reduceActionForConst1:)
#(53 2 #reduceActionForBuiltinType1:)
#(53 2 #reduceActionForBuiltinType2:)
#(53 2 #reduceActionForBuiltinType3:)
#(53 2 #reduceActionForBuiltinType4:)
#(53 1 #reduceActionForBuiltinType5:)
#(53 1 #reduceActionForBuiltinType6:)
#(53 1 #reduceActionForBuiltinType7:)
#(53 1 #reduceActionForBuiltinType8:)
#(53 1 #reduceActionForBuiltinType9:)
#(53 1 #reduceActionForBuiltinType10:)
#(54 4 #reduceActionForPointer1:)
#(55 7 #reduceActionForArray1:)
#(56 7 #reduceActionForArgument1:)
#(57 1 #'reduceActionForGroup______name_1:')
#(58 0 #'reduceActionForOptional__Group______name_1:')
#(58 1 #'reduceActionForOptional__Group______name_2:')
#(59 9 #reduceActionForStructField1:)
#(59 9 #reduceActionForStructField2:)
#(59 9 #reduceActionForStructField3:)
#(60 0 #'reduceActionForRepeat__StructField1:')
#(60 2 #'reduceActionForRepeat__StructField2:')
#(61 7 #reduceActionForEnumValue1:)
#(62 0 #'reduceActionForRepeat__EnumValue1:')
#(62 2 #'reduceActionForRepeat__EnumValue2:')
#(65 0 #'reduceActionForRepeat__Definition1:')
#(65 2 #'reduceActionForRepeat__Definition2:')
#(66 1 #reduceActionForDefinitionFile1:)
)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
!

transitionTable
	^#(
#[1 0 234 0 12 0 234 0 63 0 13 0 65 0 17 0 66]
#[1 0 234 0 12 0 234 0 63 0 13 0 65 0 21 0 66]
#[1 0 25 0 12 0 29 0 38 0 33 0 39 0 37 0 40 0 41 0 41 0 45 0 42 0 49 0 44 0 242 0 63]
#[0 0 0 0 63]
#[0 0 0 0 63]
#[1 0 53 0 11 0 57 0 17 0 61 0 20 0 65 0 22 0 69 0 23 0 73 0 25 0 77 0 29 0 81 0 31 0 85 0 32]
#[0 0 50 0 12 0 63]
#[0 0 54 0 12 0 63]
#[0 0 58 0 12 0 63]
#[0 0 62 0 12 0 63]
#[0 0 46 0 12 0 63]
#[0 0 238 0 12 0 63]
#[0 0 89 0 33]
#[0 0 93 0 33]
#[1 0 194 0 12 0 194 0 14 0 97 0 33 0 101 0 57 0 105 0 58]
#[0 0 109 0 33]
#[1 0 194 0 12 0 194 0 14 0 97 0 33 0 101 0 57 0 113 0 58]
#[1 0 194 0 12 0 194 0 14 0 97 0 33 0 101 0 57 0 117 0 58]
#[1 0 194 0 12 0 194 0 14 0 97 0 33 0 101 0 57 0 121 0 58]
#[1 0 194 0 12 0 194 0 14 0 97 0 33 0 101 0 57 0 125 0 58]
#[1 0 194 0 12 0 194 0 14 0 97 0 33 0 101 0 57 0 129 0 58]
#[0 0 133 0 12]
#[1 0 137 0 1 0 141 0 2 0 145 0 3 0 149 0 4 0 153 0 5 0 157 0 6 0 161 0 12 0 165 0 15 0 169 0 16 0 173 0 24 0 177 0 27 0 181 0 28 0 185 0 33 0 189 0 38 0 193 0 39 0 197 0 40 0 201 0 48 0 205 0 51 0 209 0 52 0 213 0 53 0 217 0 54 0 221 0 55]
#[0 0 190 0 12 0 14]
#[0 0 198 0 12 0 14]
#[1 0 226 0 12 0 226 0 14 0 225 0 62]
#[1 0 137 0 1 0 141 0 2 0 145 0 3 0 149 0 4 0 153 0 5 0 157 0 6 0 161 0 12 0 165 0 15 0 169 0 16 0 173 0 24 0 177 0 27 0 181 0 28 0 185 0 33 0 189 0 38 0 193 0 39 0 197 0 40 0 229 0 48 0 205 0 51 0 209 0 52 0 213 0 53 0 217 0 54 0 221 0 55]
#[1 0 226 0 12 0 226 0 14 0 233 0 62]
#[1 0 214 0 12 0 214 0 14 0 237 0 60]
#[1 0 214 0 12 0 214 0 14 0 241 0 60]
#[1 0 214 0 12 0 214 0 14 0 245 0 60]
#[1 0 214 0 12 0 214 0 14 0 249 0 60]
#[1 0 70 0 12 0 70 0 14 0 253 0 46]
#[1 0 137 0 1 0 141 0 2 0 145 0 3 0 149 0 4 0 153 0 5 0 157 0 6 0 165 0 15 0 169 0 16 0 173 0 24 0 177 0 27 1 1 0 53]
#[1 0 137 0 1 0 141 0 2 0 145 0 3 0 149 0 4 0 153 0 5 0 157 0 6 0 165 0 15 0 169 0 16 0 173 0 24 0 177 0 27 1 5 0 53]
#[1 0 137 0 1 0 141 0 2 0 145 0 3 0 149 0 4 0 153 0 5 0 157 0 6 0 165 0 15 0 169 0 16 0 173 0 24 0 177 0 27 1 9 0 53]
#[1 0 137 0 1 0 141 0 2 0 145 0 3 0 149 0 4 0 153 0 5 0 157 0 6 0 165 0 15 0 169 0 16 0 173 0 24 0 177 0 27 1 13 0 53]
#[0 0 158 0 14]
#[0 0 154 0 14]
#[1 1 17 0 7 0 61 0 20 0 69 0 23 0 73 0 25 1 21 0 26 0 77 0 29 1 25 0 30 0 81 0 31 0 85 0 32]
#[0 0 166 0 14]
#[0 0 162 0 14]
#[0 0 170 0 14]
#[0 0 174 0 14]
#[1 0 137 0 1 0 141 0 2 0 145 0 3 0 149 0 4 0 153 0 5 0 157 0 6 0 161 0 12 0 165 0 15 0 169 0 16 0 173 0 24 0 177 0 27 0 181 0 28 0 185 0 33 0 189 0 38 0 193 0 39 0 197 0 40 1 29 0 48 0 205 0 51 0 209 0 52 0 213 0 53 0 217 0 54 0 221 0 55]
#[0 0 114 0 14]
#[0 0 102 0 14]
#[0 0 106 0 14]
#[0 0 110 0 14]
#[0 1 33 0 14]
#[0 0 98 0 14]
#[0 0 82 0 14]
#[0 0 86 0 14]
#[0 0 90 0 14]
#[0 0 94 0 14]
#[1 1 37 0 12 1 41 0 14 1 45 0 61]
#[0 1 49 0 14]
#[1 1 37 0 12 1 53 0 14 1 45 0 61]
#[1 1 57 0 12 1 61 0 14 1 65 0 59]
#[1 1 57 0 12 1 69 0 14 1 65 0 59]
#[1 1 57 0 12 1 73 0 14 1 65 0 59]
#[1 1 57 0 12 1 77 0 14 1 65 0 59]
#[1 1 81 0 12 1 85 0 14 1 89 0 56]
#[0 0 142 0 14]
#[0 0 138 0 14]
#[0 0 150 0 14]
#[0 0 146 0 14]
#[0 1 93 0 33]
#[0 1 97 0 12]
#[1 0 137 0 1 0 141 0 2 0 145 0 3 0 149 0 4 0 153 0 5 0 157 0 6 0 161 0 12 0 165 0 15 0 169 0 16 0 173 0 24 0 177 0 27 0 181 0 28 0 185 0 33 0 189 0 38 0 193 0 39 0 197 0 40 1 101 0 48 0 205 0 51 0 209 0 52 0 213 0 53 0 217 0 54 0 221 0 55]
#[0 0 134 0 14]
#[0 0 34 0 12 0 63]
#[0 1 105 0 21]
#[0 0 22 0 12 0 14 0 63]
#[0 0 230 0 12 0 14]
#[0 0 30 0 12 0 63]
#[0 0 26 0 12 0 14 0 63]
#[0 1 109 0 19]
#[0 0 18 0 12 0 14 0 63]
#[0 0 218 0 12 0 14]
#[0 0 14 0 12 0 14 0 63]
#[0 0 10 0 12 0 14 0 63]
#[0 0 6 0 12 0 14 0 63]
#[0 1 113 0 13]
#[1 1 117 0 12 1 121 0 47]
#[0 0 74 0 12 0 14]
#[0 1 125 0 12]
#[1 0 137 0 1 0 141 0 2 0 145 0 3 0 149 0 4 0 153 0 5 0 157 0 6 0 161 0 12 0 165 0 15 0 169 0 16 0 173 0 24 0 177 0 27 0 181 0 28 0 185 0 33 0 189 0 38 0 193 0 39 0 197 0 40 1 129 0 48 0 205 0 51 0 209 0 52 0 213 0 53 0 217 0 54 0 221 0 55]
#[0 1 133 0 14]
#[0 1 137 0 12]
#[0 1 141 0 12]
#[0 1 145 0 12]
#[0 1 149 0 8]
#[0 1 153 0 14]
#[1 0 122 0 12 0 122 0 14 1 157 0 50]
#[0 1 161 0 14]
#[0 0 178 0 14]
#[0 1 165 0 33]
#[1 0 137 0 1 0 141 0 2 0 145 0 3 0 149 0 4 0 153 0 5 0 157 0 6 0 161 0 12 0 165 0 15 0 169 0 16 0 173 0 24 0 177 0 27 0 181 0 28 0 185 0 33 0 189 0 38 0 193 0 39 0 197 0 40 1 169 0 48 0 205 0 51 0 209 0 52 0 213 0 53 0 217 0 54 0 221 0 55]
#[1 0 137 0 1 0 141 0 2 0 145 0 3 0 149 0 4 0 153 0 5 0 157 0 6 0 161 0 12 0 165 0 15 0 169 0 16 0 173 0 24 0 177 0 27 0 181 0 28 0 185 0 33 0 189 0 38 0 193 0 39 0 197 0 40 1 173 0 48 0 205 0 51 0 209 0 52 0 213 0 53 0 217 0 54 0 221 0 55]
#[1 0 137 0 1 0 141 0 2 0 145 0 3 0 149 0 4 0 153 0 5 0 157 0 6 0 161 0 12 0 165 0 15 0 169 0 16 0 173 0 24 0 177 0 27 0 181 0 28 0 185 0 33 0 189 0 38 0 193 0 39 0 197 0 40 1 177 0 48 0 205 0 51 0 209 0 52 0 213 0 53 0 217 0 54 0 221 0 55]
#[0 0 38 0 12 0 63]
#[1 1 181 0 12 1 185 0 14 1 189 0 49]
#[0 1 193 0 34]
#[0 1 197 0 14]
#[0 1 201 0 14]
#[0 1 205 0 14]
#[0 1 209 0 14]
#[0 1 213 0 13]
#[1 1 117 0 12 1 217 0 47]
#[0 0 126 0 12 0 14]
#[0 1 221 0 14]
#[0 1 225 0 34]
#[1 1 229 0 11 1 233 0 21 1 237 0 33]
#[0 1 241 0 33]
#[0 0 78 0 14]
#[0 1 245 0 12]
#[0 1 249 0 14]
#[0 0 182 0 14]
#[0 1 253 0 14]
#[0 2 1 0 18]
#[0 2 5 0 18]
#[0 2 9 0 18]
#[0 2 13 0 14]
#[1 0 137 0 1 0 141 0 2 0 145 0 3 0 149 0 4 0 153 0 5 0 157 0 6 0 161 0 12 0 165 0 15 0 169 0 16 0 173 0 24 0 177 0 27 0 181 0 28 0 185 0 33 0 189 0 38 0 193 0 39 0 197 0 40 2 17 0 48 0 205 0 51 0 209 0 52 0 213 0 53 0 217 0 54 0 221 0 55]
#[0 0 130 0 14]
#[0 0 222 0 12 0 14]
#[0 2 21 0 34]
#[0 2 25 0 34]
#[0 2 29 0 34]
#[0 0 186 0 12 0 14]
#[0 2 33 0 14]
#[0 2 37 0 14]
#[0 2 41 0 14]
#[0 2 45 0 14]
#[0 2 49 0 14]
#[0 0 210 0 12 0 14]
#[0 0 206 0 12 0 14]
#[0 0 202 0 12 0 14]
#[0 0 118 0 12 0 14]
)

    "Modified: / 09-07-2008 / 21:26:00 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!CDefinitionParser methodsFor:'private-error handling'!

reportErrorMessage: aString

    super reportErrorMessage: 'line ', scanner lineNumber printString, ': ' , aString

    "Created: / 04-07-2008 / 12:13:14 / Jan Vrany <vranyj1@fel.cvut.cz>"
! !

!CDefinitionParser class methodsFor:'documentation'!

version
    ^ '$Header: /opt/data/cvs/cvut-fel/cface/Cface__CDefinitionParser.st,v 1.1 2008/02/26 15:59:19 vranyj1 Exp $'
! !