%SQL.Util.RowTypehidden class %SQL.Util.RowType
This is a temporary structure - perhaps. Normally the output from a parser is a parse tree. This is a pt -of sorts. column - Number of columns column(n) - Column name column(n,1) - Column SQL type column(n,2) - type column(n,2,
) - value of type parameter
The current lexeme value. It make be a composite of several tokens.
The source is the text to be parsed. Files are bound to a file stream object, arrays are copied to a global stream object.
The current sourceLine number. Used for error reporting.
This is an array of tokens. It is managed completely by the tokenizer() and only accessed through public accessor methods, including nextToken.
The pointer to the current token in the source stream
The state transition stack. Each production pushes the next state onto this stack If continuation is necessary then the production first pushes a return state onto the transition stack. States are simple integers, 1 being the initial state. Continuations are the same integer followed by a "c".
pMetadata and pObjects are generated metadata from the row type as contained in pColumn.
Extract a delimited token from the lexeme stream. If the current lexeme is the pBegin value then consume all tokens from the current position until the pEnd token is found and is not nested and is not in a string.
This function looks ahead to the first non-white token.
This should really be using regular expressions and matching the longest possible lexeme against the valid lookaheads. For now, just look for a terminator in the pTerminators string. If pStringAsToken is true then look for a leading quote character. If found then invoke nestedStringLiteral to consume all tokens up to the ending quote and return the nested string as a single token.
STATE: 1 - The initial state production line. LOOKAHEADS: rowtype | objecttype | rowtype_body
STATE: 1c - continuation of the initial state
STATE: 2 - ROW LOOKAHEADS: rowtype_body
STATE: 3 - OBJECT LOOKAHEADS: objecttype_body
STATE: 4 - rowtype_body ::= LOOKAHEADS: sql_identifier | WHITESPACE | COMMA | right_paren
STATE: 5 - objecttype_body ::= LOOKAHEADS: object_identifier | WHITESPACE | COMMA | right_paren
STATE: 6 - field_definition ::= field_name data_type LOOKAHEADS: sql_identifier (
::= ::= | )
STATE: 7 - property_definition =:: LOOKAHEADS:
STATE: datatype ::=
| | LOOKAHEADS:
#; terminatedKeywordValue(pTerminator,pIgnoreString) #; #; This function scans the source until the token pTerminator in encountered in the stream. #; If pIgnoreString is TRUE then pTerminator can be found anywhere, otherwise pTerminator #; is only recognized if it is not in a quoted string.