Version 7.0
Copyright © 2021 Lowell D. Thomas
APG
… an ABNF Parser Generator
Data Fields
api Struct Reference

The API context. More...

#include <apip.h>

Collaboration diagram for api:
Collaboration graph
[legend]

Data Fields

const void * vpValidate
 the "magic number" to indicate that this is a valid context More...
 
exceptionspException
 
void * vpMem
 Pointer to the memory context used for all memory allocations and exceptions thrown. More...
 
void * vpParser
 context handle to the SABNF grammar parser object More...
 
void * vpAltStack
 A temporary vector for the AST translator. More...
 
void * vpAst
 context handle to the AST object More...
 
void * vpAttrsCtx
 context handle to the attributes object More...
 
void * vpOutputAcharTable
 Storage for variable character width output parser achar table. More...
 
void * vpOutputParserInit
 Storage for variable integer width output parser init data. More...
 
luintluipInit
 Storage variable for intermediate parser initialization data. More...
 
char * cpLineBuffer
 Storage variable for intermediate parser line data. More...
 
void * vpVecInput
 The (ASCII) input grammar files and/or strings accumulate here. Always a NULL-terminated string. More...
 
void * vpVecGrammar
 The (achar) input grammar, if sizeof(achar) > sizeof(char). More...
 
char * cpInput
 
aint uiInputLength
 The number of input characters. More...
 
void * vpLines
 Context pointer to a lines object. More...
 
void * vpVecTempChars
 Temporary vector of characters. Here for clean up on unusual exit. More...
 
api_rulespRules
 Points to an array of rule structures. More...
 
aint uiRuleCount
 The number of rules in the SABNF grammar and in the array. More...
 
api_udtspUdts
 Points to an array of UDT structures, if one or more UDTs are referenced in the SABNF grammar. More...
 
aint uiUdtCount
 The number of UDTs referenced in the SABNF grammar. More...
 
char * cpStringTable
 Pointer to a list of null-terminated ASCII strings representing the rule and UDT names. More...
 
aint uiStringTableLength
 The number of characters in the string table. More...
 
aint uiVersionOffset
 Offset into the string table for the Version Number string. More...
 
aint uiVersionLength
 Length of the Version Number string. More...
 
aint uiLicenseOffset
 Offset into the string table for the License string. More...
 
aint uiLicenseLength
 Length of the License string. More...
 
aint uiCopyrightOffset
 Offset into the string table for the Copyright string. More...
 
aint uiCopyrightLength
 Length of the copyright string. More...
 
luintluipAcharTable
 Pointer to the Achar Table - a table of all of the alphabet characters referenced by the terminal nodes, TLS, TBL & TRG. More...
 
aint uiAcharTableLength
 Number of alphabet characters in the Achar Table. More...
 
aintuipChildIndexTable
 Pointer to a list of child indexes. ALT & CAT operators have two or more children operators. Each has a list of its children operators. This table has that list for each of the ALT and CAT operators in the SABNF grammar. More...
 
aint uiChildIndexTableLength
 The number of indexes (integers) in the child index table. More...
 
api_opspOpcodes
 Pointer to the array of opcodes for the SANF grammar. More...
 
aint uiOpcodeCount
 Number of opcodes. More...
 
abool bUsePppt
 True of PPPT are being used. More...
 
uint8_t * ucpPpptUndecidedMap
 Common PPPT character map for an operator that is indeterminate on the next alphabet character. More...
 
uint8_t * ucpPpptEmptyMap
 Common PPPT character map for an operator that is an empty match on the next alphabet character. More...
 
uint8_t * ucpPpptTable
 Pointer to the PPPT table of operator maps. More...
 
luint luiPpptTableLength
 The PPPT length. More...
 
luint luiPpptMapCount
 The number of operator maps in the table. More...
 
luint luiPpptMapSize
 The size, in bytes, of a single operator map. More...
 
luint luiAcharMin
 The minimum alphabet character referenced by the terminal nodes, TLS, TBL & TRG. More...
 
luint luiAcharMax
 The maximum alphabet character referenced by the terminal nodes, TLS, TBL & TRG. More...
 
luint luiAcharEos
 The special End-Of-String character. In practice, luiAcharMax + 1. More...
 
void * vpLog
 A msglog context for error reporting. More...
 
abool bInputValid
 APG_TRUE if theer is input and it has been validated, APG_FALSE otherwise. More...
 
abool bSyntaxValid
 APG_TRUE if the input syntax is valid, APG_FALSE otherwise. More...
 
abool bSemanticsValid
 APG_TRUE if the the input semantics are valid. That is, the opcodes for the parser have been generated. APG_FALSE otherwise. More...
 
abool bAttributesValid
 APG_TRUE if there the rule attributes have been computed and have no fatal errors, APG_FALSE otherwise. More...
 
abool bAttributesComputed
 APG_TRUE if attributes have been computed (even is there are attribute errors), APG_FALSE otherwise. More...
 

Detailed Description

The API context.

Definition at line 123 of file apip.h.

Field Documentation

◆ bAttributesComputed

abool api::bAttributesComputed

APG_TRUE if attributes have been computed (even is there are attribute errors), APG_FALSE otherwise.

Definition at line 188 of file apip.h.

◆ bAttributesValid

abool api::bAttributesValid

APG_TRUE if there the rule attributes have been computed and have no fatal errors, APG_FALSE otherwise.

Definition at line 186 of file apip.h.

◆ bInputValid

abool api::bInputValid

APG_TRUE if theer is input and it has been validated, APG_FALSE otherwise.

Definition at line 182 of file apip.h.

◆ bSemanticsValid

abool api::bSemanticsValid

APG_TRUE if the the input semantics are valid. That is, the opcodes for the parser have been generated. APG_FALSE otherwise.

Definition at line 184 of file apip.h.

◆ bSyntaxValid

abool api::bSyntaxValid

APG_TRUE if the input syntax is valid, APG_FALSE otherwise.

Definition at line 183 of file apip.h.

◆ bUsePppt

abool api::bUsePppt

True of PPPT are being used.

Definition at line 167 of file apip.h.

◆ cpInput

char* api::cpInput

Definition at line 139 of file apip.h.

◆ cpLineBuffer

char* api::cpLineBuffer

Storage variable for intermediate parser line data.

Definition at line 134 of file apip.h.

◆ cpStringTable

char* api::cpStringTable

Pointer to a list of null-terminated ASCII strings representing the rule and UDT names.

Definition at line 149 of file apip.h.

◆ luiAcharEos

luint api::luiAcharEos

The special End-Of-String character. In practice, luiAcharMax + 1.

Definition at line 176 of file apip.h.

◆ luiAcharMax

luint api::luiAcharMax

The maximum alphabet character referenced by the terminal nodes, TLS, TBL & TRG.

Definition at line 175 of file apip.h.

◆ luiAcharMin

luint api::luiAcharMin

The minimum alphabet character referenced by the terminal nodes, TLS, TBL & TRG.

Definition at line 174 of file apip.h.

◆ luipAcharTable

luint* api::luipAcharTable

Pointer to the Achar Table - a table of all of the alphabet characters referenced by the terminal nodes, TLS, TBL & TRG.

Definition at line 157 of file apip.h.

◆ luipInit

luint* api::luipInit

Storage variable for intermediate parser initialization data.

Definition at line 133 of file apip.h.

◆ luiPpptMapCount

luint api::luiPpptMapCount

The number of operator maps in the table.

Definition at line 172 of file apip.h.

◆ luiPpptMapSize

luint api::luiPpptMapSize

The size, in bytes, of a single operator map.

Definition at line 173 of file apip.h.

◆ luiPpptTableLength

luint api::luiPpptTableLength

The PPPT length.

Definition at line 171 of file apip.h.

◆ spException

exception* api::spException

Definition at line 125 of file apip.h.

◆ spOpcodes

api_op* api::spOpcodes

Pointer to the array of opcodes for the SANF grammar.

Definition at line 162 of file apip.h.

◆ spRules

api_rule* api::spRules

Points to an array of rule structures.

Definition at line 145 of file apip.h.

◆ spUdts

api_udt* api::spUdts

Points to an array of UDT structures, if one or more UDTs are referenced in the SABNF grammar.

Definition at line 147 of file apip.h.

◆ ucpPpptEmptyMap

uint8_t* api::ucpPpptEmptyMap

Common PPPT character map for an operator that is an empty match on the next alphabet character.

Definition at line 169 of file apip.h.

◆ ucpPpptTable

uint8_t* api::ucpPpptTable

Pointer to the PPPT table of operator maps.

Definition at line 170 of file apip.h.

◆ ucpPpptUndecidedMap

uint8_t* api::ucpPpptUndecidedMap

Common PPPT character map for an operator that is indeterminate on the next alphabet character.

Definition at line 168 of file apip.h.

◆ uiAcharTableLength

aint api::uiAcharTableLength

Number of alphabet characters in the Achar Table.

Definition at line 158 of file apip.h.

◆ uiChildIndexTableLength

aint api::uiChildIndexTableLength

The number of indexes (integers) in the child index table.

Definition at line 161 of file apip.h.

◆ uiCopyrightLength

aint api::uiCopyrightLength

Length of the copyright string.

Definition at line 156 of file apip.h.

◆ uiCopyrightOffset

aint api::uiCopyrightOffset

Offset into the string table for the Copyright string.

Definition at line 155 of file apip.h.

◆ uiInputLength

aint api::uiInputLength

The number of input characters.

Pointer to the input in the above vpVecInput vector, if any. NULL otherwise.

Definition at line 140 of file apip.h.

◆ uiLicenseLength

aint api::uiLicenseLength

Length of the License string.

Definition at line 154 of file apip.h.

◆ uiLicenseOffset

aint api::uiLicenseOffset

Offset into the string table for the License string.

Definition at line 153 of file apip.h.

◆ uiOpcodeCount

aint api::uiOpcodeCount

Number of opcodes.

Definition at line 163 of file apip.h.

◆ uipChildIndexTable

aint* api::uipChildIndexTable

Pointer to a list of child indexes. ALT & CAT operators have two or more children operators. Each has a list of its children operators. This table has that list for each of the ALT and CAT operators in the SABNF grammar.

Definition at line 159 of file apip.h.

◆ uiRuleCount

aint api::uiRuleCount

The number of rules in the SABNF grammar and in the array.

Definition at line 146 of file apip.h.

◆ uiStringTableLength

aint api::uiStringTableLength

The number of characters in the string table.

Definition at line 150 of file apip.h.

◆ uiUdtCount

aint api::uiUdtCount

The number of UDTs referenced in the SABNF grammar.

Definition at line 148 of file apip.h.

◆ uiVersionLength

aint api::uiVersionLength

Length of the Version Number string.

Definition at line 152 of file apip.h.

◆ uiVersionOffset

aint api::uiVersionOffset

Offset into the string table for the Version Number string.

Definition at line 151 of file apip.h.

◆ vpAltStack

void* api::vpAltStack

A temporary vector for the AST translator.

Definition at line 128 of file apip.h.

◆ vpAst

void* api::vpAst

context handle to the AST object

Definition at line 129 of file apip.h.

◆ vpAttrsCtx

void* api::vpAttrsCtx

context handle to the attributes object

Definition at line 130 of file apip.h.

◆ vpLines

void* api::vpLines

Context pointer to a lines object.

Definition at line 141 of file apip.h.

◆ vpLog

void* api::vpLog

A msglog context for error reporting.

Definition at line 179 of file apip.h.

◆ vpMem

void* api::vpMem

Pointer to the memory context used for all memory allocations and exceptions thrown.

Definition at line 126 of file apip.h.

◆ vpOutputAcharTable

void* api::vpOutputAcharTable

Storage for variable character width output parser achar table.

Definition at line 131 of file apip.h.

◆ vpOutputParserInit

void* api::vpOutputParserInit

Storage for variable integer width output parser init data.

Definition at line 132 of file apip.h.

◆ vpParser

void* api::vpParser

context handle to the SABNF grammar parser object

Definition at line 127 of file apip.h.

◆ vpValidate

const void* api::vpValidate

the "magic number" to indicate that this is a valid context

Definition at line 124 of file apip.h.

◆ vpVecGrammar

void* api::vpVecGrammar

The (achar) input grammar, if sizeof(achar) > sizeof(char).

Definition at line 138 of file apip.h.

◆ vpVecInput

void* api::vpVecInput

The (ASCII) input grammar files and/or strings accumulate here. Always a NULL-terminated string.

Definition at line 137 of file apip.h.

◆ vpVecTempChars

void* api::vpVecTempChars

Temporary vector of characters. Here for clean up on unusual exit.

Definition at line 142 of file apip.h.


The documentation for this struct was generated from the following file:
APG Version 7.0 is licensed under the 2-Clause BSD License,
an Open Source Initiative Approved License.