Version 7.0
Copyright © 2021 Lowell D. Thomas
APG
… an ABNF Parser Generator
|
void vRuleAttributes(attrs_ctx *spAtt)
Computes the attributes of each rule in the grammar.
The API will construct an attributes object. This is the attribute object's context.
Working attribute information about a each rule.
aint uiStartRule
The grammar start rule.
const void * vpValidate
True if the context is valid.
The recursive attributes of a single SABNF grammra rule.
void vAttrsByName(api_attr *spAttrs, aint uiCount, FILE *spStream)
Display the attributes sorted by rule name.
uint_fast32_t aint
The APG parser's unsigned integer type.
const char * cpType(aint uiId)
Convert an attribute type ID to an ASCII string.
void vAttrsByType(api_attr *spAttrs, aint uiCount, FILE *spStream)
Display the attributes sorted by attribute type.
A structure to describe the type and location of a caught exception.
api_attr * spErrorAttrs
An array of all rule attributes that have errors. (i.e. left recursive)
api * spApi
Pointer to the parent API context.
void vRuleDependencies(attrs_ctx *spAtt)
Compute each rule's dependencies on the other rules, and possibly on itself if the rule is recursive.
void * vpMem
Pointer to the memory context inherited from the parent API.
void * vpVecGroupNumbers
A vector for the discovery of groups of mutually recursive rules.
exception * spException
Pointer to the exception context inherited from the parent API.
void vAttrsDtor(void *vpCtx)
The API object destructor.
api_attr_w * spWorkingAttrs
An array of private attribute structures.
void vAttrsByIndex(api_attr *spAttrs, aint uiCount, FILE *spStream)
Display the attributes sorted by rule index.
api_attr * spPublicAttrs
When attributes a complete, the public version strips some of the unneeded variables used only in con...
aint uiErrorCount
The number of rules that have attribute errors.
APG Version 7.0 is licensed under the
2-Clause BSD License,
an Open Source Initiative Approved License.