Gizmo3D

gzLex.h File Reference

Lexical utilities. More...

#include "gzSerialize.h"
#include "gzDynamic.h"
#include "gzPerformance.h"

Go to the source code of this file.

Classes

class  gzLexTokenData
 Allow both '.' and ',' as decimal separator. More...
class  gzSerializeLex
class  gzStringTokenizer
class  gzArgumentParser
 Parse arguments from main() or from a given string. More...
class  gzArgumentParser::gzArgOption
class  gzArgumentParser::gzArgArgument
struct  gzTokenPos
class  gzParserFunction< T, BaseParser >
class  gzParserFunction< T, BaseParser >::gzFuncInfo
class  gzParserFunction< T, BaseParser >::gzRuleInfo
class  gzBasicParser
class  gzParserFunctionEvaluator< T, BaseParser >
class  gzRecycledFunctionEvaluator< T, BaseParser >
class  gzDynamicTypeArgumentParser
class  gzRegKeyExpandParser

Typedefs

typedef gzArray< gzLexTokenDatagzLexTokenDataArray
typedef gzArray< gzDynamicTypegzParseResultArray

Enumerations

enum  gzLexDataType {
  GZ_LEX_EMPTY = 0, GZ_LEX_TOKEN = (1<<0), GZ_LEX_IDENTIFIER = (1<<1), GZ_LEX_DOUBLE_STRING = (1<<2),
  GZ_LEX_SINGLE_STRING = (1<<3), GZ_LEX_STRING = GZ_LEX_SINGLE_STRING + GZ_LEX_DOUBLE_STRING, GZ_LEX_INTEGER = (1<<4), GZ_LEX_REAL = (1<<5),
  GZ_LEX_LONGLONG = (1<<6), GZ_LEX_NUMBER = GZ_LEX_INTEGER + GZ_LEX_REAL + GZ_LEX_LONGLONG, GZ_LEX_COMMENT = (1<<7), GZ_LEX_WHITESPACE = (1<<8),
  GZ_LEX_ERROR = (1<<9), GZ_LEX_SET = (1<<10)
}
enum  gzLexErrorType {
  GZ_LEX_ERROR_IN_INTEGER = 1, GZ_LEX_ERROR_IN_REAL, GZ_LEX_ERROR_UNEXPECTED_END_OF_COMMENT, GZ_LEX_ERROR_UNEXPECTED_END_OF_INTEGER,
  GZ_LEX_ERROR_UNEXPECTED_END_OF_REAL, GZ_LEX_ERROR_UNEXPECTED_END_OF_STRING, GZ_LEX_ERROR_UNEXPECTED_END_OF_SET
}
enum  gzBasicParseException { GZ_EXCEPTION_OUT_OF_DATA, GZ_EXCEPTION_DATA_IS_DISCARDED, GZ_EXCEPTION_USER_EXIT, GZ_EXCEPTION_GENERIC_ERROR }
 Possible exceptions during parsing in gzBasicParser. More...
enum  gzParseResult { GZ_PARSE_ERROR = 0, GZ_PARSE_OK = 1, GZ_PARSE_NO_MATCH = 2 }
 Generic returnvalues of parsing functions. More...

Functions

gzLexTokenDataArray getLexTokenDataArray (const char *string, gzBool skipWhiteSpace=TRUE)
 Utility to tokenize a string into a gzLexTokenDataArray.
gzBool checkLexToken (const gzLexTokenDataArray &array, const gzULong argPos, const gzLexDataType &type, const gzDynamicType &data)
 Utility to check argument argPos in array for value.
gzBool checkLexToken (const gzLexTokenDataArray &array, const gzULong argPos, const gzLexDataType &type, gzDynamicType *data=NULL)
 Utility to check argument argPos in array. Gets value in valid pointer.
gzParseResultArray parse (const char *parseFormatString, const char *dataString, gzBool *success=NULL, gzUShort decimalToken='.')
 Parse a string with syntax values.

Variables

const gzUShort USE_COMMA_AND_DOT = 9999
const gzString GZ_RULE_DELIMITER = gzUniqueString("::=")
 Rule delimiter for EBNF rules.
const gzString GZ_PUSH_TOKEN = gzUniqueString("$")
const gzString GZ_MISSING_IDENTIFIER = gzUniqueString("Missing Identifier")


Detailed Description

Lexical utilities.

Definition in file gzLex.h.


Typedef Documentation

typedef gzArray<gzLexTokenData> gzLexTokenDataArray
 

Definition at line 232 of file gzLex.h.

typedef gzArray<gzDynamicType> gzParseResultArray
 

Definition at line 233 of file gzLex.h.


Enumeration Type Documentation

enum gzBasicParseException
 

Possible exceptions during parsing in gzBasicParser.

Enumerator:
GZ_EXCEPTION_OUT_OF_DATA 
GZ_EXCEPTION_DATA_IS_DISCARDED 
GZ_EXCEPTION_USER_EXIT 
GZ_EXCEPTION_GENERIC_ERROR 

Definition at line 393 of file gzLex.h.

enum gzLexDataType
 

Enumerator:
GZ_LEX_EMPTY 
GZ_LEX_TOKEN 
GZ_LEX_IDENTIFIER 
GZ_LEX_DOUBLE_STRING 
GZ_LEX_SINGLE_STRING 
GZ_LEX_STRING 
GZ_LEX_INTEGER 
GZ_LEX_REAL 
GZ_LEX_LONGLONG 
GZ_LEX_NUMBER 
GZ_LEX_COMMENT 
GZ_LEX_WHITESPACE 
GZ_LEX_ERROR 
GZ_LEX_SET 

Definition at line 33 of file gzLex.h.

enum gzLexErrorType
 

Enumerator:
GZ_LEX_ERROR_IN_INTEGER 
GZ_LEX_ERROR_IN_REAL 
GZ_LEX_ERROR_UNEXPECTED_END_OF_COMMENT 
GZ_LEX_ERROR_UNEXPECTED_END_OF_INTEGER 
GZ_LEX_ERROR_UNEXPECTED_END_OF_REAL 
GZ_LEX_ERROR_UNEXPECTED_END_OF_STRING 
GZ_LEX_ERROR_UNEXPECTED_END_OF_SET 

Definition at line 53 of file gzLex.h.

enum gzParseResult
 

Generic returnvalues of parsing functions.

Enumerator:
GZ_PARSE_ERROR 
GZ_PARSE_OK 
GZ_PARSE_NO_MATCH 

Definition at line 402 of file gzLex.h.


Function Documentation

gzBool checkLexToken const gzLexTokenDataArray array,
const gzULong  argPos,
const gzLexDataType type,
gzDynamicType data = NULL
 

Utility to check argument argPos in array. Gets value in valid pointer.

gzBool checkLexToken const gzLexTokenDataArray array,
const gzULong  argPos,
const gzLexDataType type,
const gzDynamicType data
 

Utility to check argument argPos in array for value.

gzLexTokenDataArray getLexTokenDataArray const char *  string,
gzBool  skipWhiteSpace = TRUE
 

Utility to tokenize a string into a gzLexTokenDataArray.

gzParseResultArray parse const char *  parseFormatString,
const char *  dataString,
gzBool success = NULL,
gzUShort  decimalToken = '.'
 

Parse a string with syntax values.

The following format parser control can be used

l - parse for GZ_LEX_INTEGER or GZ_LEX_LONGLONG n - parse for GZ_LEX_NUMBER x - parse for GZ_LEX_INTEGER or GZ_LEX_LONGLONG in hex

s - parse for GZ_STRING

e - parse for rest of indata string

t - parse for GZ_LEX_TOKEN i - parse for GZ_LEX_IDENTIFIER p - parse for GZ_LEX_IDENTIFIER with only plain charachers

w - skip optional whitespace

';./&' - skip for optional character in set of tokens ';' or '.' or '/' or '&'

All other tokens and identifiers as matched


Variable Documentation

const gzString GZ_MISSING_IDENTIFIER = gzUniqueString("Missing Identifier")
 

Definition at line 412 of file gzLex.h.

const gzString GZ_PUSH_TOKEN = gzUniqueString("$")
 

Definition at line 411 of file gzLex.h.

const gzString GZ_RULE_DELIMITER = gzUniqueString("::=")
 

Rule delimiter for EBNF rules.

Definition at line 410 of file gzLex.h.

const gzUShort USE_COMMA_AND_DOT = 9999
 

Definition at line 61 of file gzLex.h.


Documentation for Gizmo3D generated at Wed Feb 20 11:54:13 2008 by   Saab Training Systems AB, ¸ (c) 2003-and beyond