typedef enum { _Production = 0, _GenProduction, _Constant, _Terminal } Class_e; typedef struct { const char const * name; size_t size; const Class_e type; } Class_t; /* START ClassBlock */ typedef enum { _INVISIBLE_, _TERMINAL_, /* Productions */ e_Query = 2, e__O_QSelectQuery_E_Or_QConstructQuery_E_Or_QDescribeQuery_E_Or_QAskQuery_E_C, e_Prologue, e__QBaseDecl_E_Opt, e__QPrefixDecl_E_Star, e_BaseDecl, e_PrefixDecl, e_SelectQuery, e__O_QIT_DISTINCT_E_Or_QIT_REDUCED_E_C, e__Q_O_QIT_DISTINCT_E_Or_QIT_REDUCED_E_C_E_Opt, e__QVar_E_Plus, e__O_QVar_E_Plus_Or_QGT_TIMES_E_C, e__QDatasetClause_E_Star, e_ConstructQuery, e_DescribeQuery, e__QVarOrIRIref_E_Plus, e__O_QVarOrIRIref_E_Plus_Or_QGT_TIMES_E_C, e__QWhereClause_E_Opt, e_AskQuery, e_DatasetClause, e__O_QDefaultGraphClause_E_Or_QNamedGraphClause_E_C, e_DefaultGraphClause, e_NamedGraphClause, e_SourceSelector, e_WhereClause, e__QIT_WHERE_E_Opt, e_SolutionModifier, e__QOrderClause_E_Opt, e__QLimitOffsetClauses_E_Opt, e_LimitOffsetClauses, e__QOffsetClause_E_Opt, e__QLimitClause_E_Opt, e__O_QLimitClause_E_S_QOffsetClause_E_Opt_Or_QOffsetClause_E_S_QLimitClause_E_Opt_C, e_OrderClause, e__QOrderCondition_E_Plus, e_OrderCondition, e__O_QIT_ASC_E_Or_QIT_DESC_E_C, e__O_QIT_ASC_E_Or_QIT_DESC_E_S_QBrackettedExpression_E_C, e__O_QConstraint_E_Or_QVar_E_C, e_LimitClause, e_OffsetClause, e_GroupGraphPattern, e__QTriplesBlock_E_Opt, e__O_QGraphPatternNotTriples_E_Or_QFilter_E_C, e__QGT_DOT_E_Opt, e__O_QGraphPatternNotTriples_E_Or_QFilter_E_S_QGT_DOT_E_Opt_S_QTriplesBlock_E_Opt_C, e__Q_O_QGraphPatternNotTriples_E_Or_QFilter_E_S_QGT_DOT_E_Opt_S_QTriplesBlock_E_Opt_C_E_Star, e_TriplesBlock, e__O_QGT_DOT_E_S_QTriplesBlock_E_Opt_C, e__Q_O_QGT_DOT_E_S_QTriplesBlock_E_Opt_C_E_Opt, e_GraphPatternNotTriples, e_OptionalGraphPattern, e_GraphGraphPattern, e_GroupOrUnionGraphPattern, e__O_QIT_UNION_E_S_QGroupGraphPattern_E_C, e__Q_O_QIT_UNION_E_S_QGroupGraphPattern_E_C_E_Star, e_Filter, e_Constraint, e_FunctionCall, e_ArgList, e__O_QGT_COMMA_E_S_QExpression_E_C, e__Q_O_QGT_COMMA_E_S_QExpression_E_C_E_Star, e__O_QNIL_E_Or_QGT_LPAREN_E_S_QExpression_E_S_QGT_COMMA_E_S_QExpression_E_Star_S_QGT_RPAREN_E_C, e_ConstructTemplate, e__QConstructTriples_E_Opt, e_ConstructTriples, e__O_QGT_DOT_E_S_QConstructTriples_E_Opt_C, e__Q_O_QGT_DOT_E_S_QConstructTriples_E_Opt_C_E_Opt, e_TriplesSameSubject, e_PropertyListNotEmpty, e__O_QVerb_E_S_QObjectList_E_C, e__Q_O_QVerb_E_S_QObjectList_E_C_E_Opt, e__O_QGT_SEMI_E_S_QVerb_E_S_QObjectList_E_Opt_C, e__Q_O_QGT_SEMI_E_S_QVerb_E_S_QObjectList_E_Opt_C_E_Star, e_PropertyList, e__QPropertyListNotEmpty_E_Opt, e_ObjectList, e__O_QGT_COMMA_E_S_QObject_E_C, e__Q_O_QGT_COMMA_E_S_QObject_E_C_E_Star, e_Object, e_Verb, e_TriplesNode, e_BlankNodePropertyList, e_Collection, e__QGraphNode_E_Plus, e_GraphNode, e_VarOrTerm, e_VarOrIRIref, e_Var, e_GraphTerm, e_Expression, e_ConditionalOrExpression, e__O_QGT_OR_E_S_QConditionalAndExpression_E_C, e__Q_O_QGT_OR_E_S_QConditionalAndExpression_E_C_E_Star, e_ConditionalAndExpression, e__O_QGT_AND_E_S_QValueLogical_E_C, e__Q_O_QGT_AND_E_S_QValueLogical_E_C_E_Star, e_ValueLogical, e_RelationalExpression, e__O_QGT_EQUAL_E_S_QNumericExpression_E_Or_QGT_NEQUAL_E_S_QNumericExpression_E_Or_QGT_LT_E_S_QNumericExpression_E_Or_QGT_GT_E_S_QNumericExpression_E_Or_QGT_LE_E_S_QNumericExpression_E_Or_QGT_GE_E_S_QNumericExpression_E_C, e__Q_O_QGT_EQUAL_E_S_QNumericExpression_E_Or_QGT_NEQUAL_E_S_QNumericExpression_E_Or_QGT_LT_E_S_QNumericExpression_E_Or_QGT_GT_E_S_QNumericExpression_E_Or_QGT_LE_E_S_QNumericExpression_E_Or_QGT_GE_E_S_QNumericExpression_E_C_E_Opt, e_NumericExpression, e_AdditiveExpression, e__O_QGT_PLUS_E_S_QMultiplicativeExpression_E_Or_QGT_MINUS_E_S_QMultiplicativeExpression_E_Or_QNumericLiteralPositive_E_Or_QNumericLiteralNegative_E_C, e__Q_O_QGT_PLUS_E_S_QMultiplicativeExpression_E_Or_QGT_MINUS_E_S_QMultiplicativeExpression_E_Or_QNumericLiteralPositive_E_Or_QNumericLiteralNegative_E_C_E_Star, e_MultiplicativeExpression, e__O_QGT_TIMES_E_S_QUnaryExpression_E_Or_QGT_DIVIDE_E_S_QUnaryExpression_E_C, e__Q_O_QGT_TIMES_E_S_QUnaryExpression_E_Or_QGT_DIVIDE_E_S_QUnaryExpression_E_C_E_Star, e_UnaryExpression, e_PrimaryExpression, e_BrackettedExpression, e_BuiltInCall, e_RegexExpression, e__Q_O_QGT_COMMA_E_S_QExpression_E_C_E_Opt, e_IRIrefOrFunction, e__QArgList_E_Opt, e_RDFLiteral, e__O_QGT_DTYPE_E_S_QIRIref_E_C, e__O_QLANGTAG_E_Or_QGT_DTYPE_E_S_QIRIref_E_C, e__Q_O_QLANGTAG_E_Or_QGT_DTYPE_E_S_QIRIref_E_C_E_Opt, e_NumericLiteral, e_NumericLiteralUnsigned, e_NumericLiteralPositive, e_NumericLiteralNegative, e_BooleanLiteral, e_String, e_IRIref, e_PrefixedName, e_BlankNode, /* Terminals */ e_IT_BASE, e_IT_PREFIX, e_IT_SELECT, e_IT_DISTINCT, e_IT_REDUCED, e_GT_TIMES, e_IT_CONSTRUCT, e_IT_DESCRIBE, e_IT_ASK, e_IT_FROM, e_IT_NAMED, e_IT_WHERE, e_IT_ORDER, e_IT_BY, e_IT_ASC, e_IT_DESC, e_IT_LIMIT, e_IT_OFFSET, e_GT_LCURLEY, e_GT_RCURLEY, e_GT_DOT, e_IT_OPTIONAL, e_IT_GRAPH, e_IT_UNION, e_IT_FILTER, e_GT_COMMA, e_GT_LPAREN, e_GT_RPAREN, e_GT_SEMI, e_IT_a, e_GT_LBRACKET, e_GT_RBRACKET, e_GT_OR, e_GT_AND, e_GT_EQUAL, e_GT_NEQUAL, e_GT_LT, e_GT_GT, e_GT_LE, e_GT_GE, e_GT_PLUS, e_GT_MINUS, e_GT_DIVIDE, e_GT_NOT, e_IT_STR, e_IT_LANG, e_IT_LANGMATCHES, e_IT_DATATYPE, e_IT_BOUND, e_IT_sameTerm, e_IT_isIRI, e_IT_isURI, e_IT_isBLANK, e_IT_isLITERAL, e_IT_REGEX, e_GT_DTYPE, e_IT_true, e_IT_false, e_IRI_REF, e_PNAME_NS, e_PNAME_LN, e_BLANK_NODE_LABEL, e_VAR1, e_VAR2, e_LANGTAG, e_INTEGER, e_DECIMAL, e_DOUBLE, e_INTEGER_POSITIVE, e_DECIMAL_POSITIVE, e_DOUBLE_POSITIVE, e_INTEGER_NEGATIVE, e_DECIMAL_NEGATIVE, e_DOUBLE_NEGATIVE, e_STRING_LITERAL1, e_STRING_LITERAL2, e_STRING_LITERAL_LONG1, e_STRING_LITERAL_LONG2, e_NIL, e_ANON } Classes_e; extern Class_t Classes[]; /* END ClassBlock */ typedef struct semval_s Semval; struct semval_s { Classes_e type; size_t size; union { Semval** vals; const char const * str; }; }; Semval* constructProduction(const Classes_e type, size_t size, ...); Semval* constructTerminal(const Classes_e type, const char const * str);