Keywords & Symbols

    • 'giglstart' : used for including the default library header in GIGL (reference), the implementation is very likely to change.

    • 'import' : used in a temporary approach for including header files (reference), this is very likely to change.

    • 'gigltype' : used to start the definition/declaration of an item type (reference).

    • 'wrapper' : used for labeling a block in an item type for specifying the item generator and wrapper attributes (reference).

    • 'node' : used for labeling a block in an item type for specifying the node attributes (reference).

    • 'nonterminal' : used for labeling a block in an item type for declaring nonterminal types and arguments to their generators (reference).

    • 'rule' : used for labeling a block in an item type for specifying the rules and defining the node generator and behavior of the node attributes in each of the rules (reference).

    • 'enable' : used to enable an item type option (reference).

    • 'disable' : used to disable an item type option (reference).

    • 'parent_ref' : an item type option allowing referring to the parent node in a functional node attribute when enabled, default mode is disabled (reference).

    • 'auto_prob_noneg' : an item type option to automatically eliminate negative rule probabilities when enabled, default mode is enabled (reference).

    • 'auto_prob_norm' : an item type option to automatically to normalize rule probabilities when enabled, default mode is enabled (reference).

    • ':=' : expansion symbol, used for indicating rules expanding from a certain nonterminal type, this appears in both the rule section of item type definition (reference) and generator configuration construction (reference).

  • 'generate' : used for generator calls at both the item level (reference) and the node level (reference).

    • 'construct' : used for constructor calls at both the item level (reference) and the node level (reference), including the mixed constructor at the item level.

    • 'with' : used for specifying the generator configuration for calls to generators or mixed constructors at the item level (reference) and specifying the expression to fill in some array helper statements (reference).

    • 'noconfig' : used for indicating pure constructor call at the item level (reference).

    • 'giglconfig' : a type specifier that is compatible for storing a generator configuration (reference).

  • '<*' : the left wrapper of a generator configuration construction expression (reference).

    • '*>' : the right nwrapper of a generator configuration construction expression (reference).

    • '@' : probability field symbol, followed by an expression wrapped in '{' and '}', which is used to specify the rule probability (reference).

    • 'probof' : used for direct reference of rule probabilites (reference).

    • 'specified' : used for referring to the sum of probabilities from the same nonterminal that are set without keywords containing 'specified' or other equivalent keywords (reference).

    • 'specifiedremain' : used for referring to the remaining probabilities after taking what 'specified' would refer to from 1.0 (reference).

    • 'specifiedremainof' : used for referring to the remaining probabilities after taking what 'specified' would refer to from some arbitrary probability (weights) (reference).

    • 'remain' : an alias of 'specifiedremain' (reference).

    • 'remainof' : an alias of 'specifiedremainof' (reference).

    • 'prev' : used for referring to the sum of probabilities from the same nonterminal that are set before this rule (reference).

    • 'prevremain' : used for referring to the remaining probabilities after taking what 'prev' would refer to from 1.0 (reference).

    • 'prevremainof' : used for referring to the remaining probabilities after taking what 'prev' would refer to from some arbitrary probability (weights) (reference).

    • 'post' : used for referring to the sum of probabilities from the same nonterminal that are set before this rule (reference).

    • 'postremain' : used for referring to the remaining probabilities after taking what 'prev' would refer to from 1.0 (reference).

    • 'postremainof' : used for referring to the remaining probabilities after taking what 'prev' would refer to from some arbitrary probability (weights) (reference).

    • 'generator' : used for defining the generator both at the item (wrapper) level (reference) and the node level (reference).

    • 'constructor' : used for defining the constructor both at the item (wrapper) level (reference) and the node level (reference).

    • 'destructor' : used for defining the destructor both at the item (wrapper) level (reference) and the node level (reference).

    • 'gencontor' : used for defining the constructor-generator (working as both the constructor and generator) both at the item (wrapper) level (reference) and the node level (reference).

    • 'preselector' : used for defining the generator behavior of a nonterminal type before the stochastic selection on which rule to expand through (reference).

    • 'pregenerator' : used for defining the pre-generator at the node level that applies across all rules of a nonterminal type and inserted in front of the generators for each individual rules (reference).

    • 'preconstructor' : used for defining the pre-constructor at the node level that applies across all rules of a nonterminal type and inserted in front of the generators for each individual rules (reference).

    • 'pregencontor' : used for defining the pre-constructor-generator (working as both the pre-constructor and pre-generator) at the node level that applies across all rules of a nonterminal type and inserted in front of the generators for each individual rules (reference).

    • 'postdestructor' : used for defining the post-destructor at the node level that applies across all rules of a nonterminal type and inserted after the generators for each individual rules (reference).

  • 'static' : a rule child option to indicate this child is a static array (i.e. not dynamically allocated), only available for array type children (reference).

  • 'noexpand' : a rule child option to indicate the child is not implicitly generated when it is a nonterminal pointer; in addition, if it is an array, the array space is not allocated (need manual allocation) (reference).

  • 'nodestroy' : a rule child option to indicate the child is not implicitly deleted when it is a nonterminal pointer; in addition, if it is an array, the array space is not deallocation (need manual deallocation) (reference).

  • 'nofill' : a rule child option to indicate the child is not implicitly generated when it is a nonterminal pointer (same as 'noexpand' for non-array children) (reference).

  • 'norelease' : a rule child option to indicate the child is not implicitly deleted when it is a nonterminal pointer (same as 'nodestroy' for non-array children) (reference).

  • 'expand' : used for an array helper statement that allocates the array space and fills each entry with the specified expression (reference).

  • 'expandzero' : used for an array helper statement that allocates the array space and fills each entry with zero (equivalent to 'expand' statement with the expression be integer literal zero) (reference).

  • 'dealloc' : used for an array helper statement that deallocates the array space and also calls delete on each array entry before that (assuming the array entries are pointers to some valid memory) (reference).

  • 'allocate' : used for an array helper statement that allocates the array space (but does not fill in the entries) (reference).

  • 'dealloc' : used for an array helper statement that deallocates the array space (but does not call delete on each array entry) (reference).

  • 'fill' : used for an array helper statement that fills each entry with the specified expression (it assumes the array space is already allocated and does not do the allocation) (reference).

  • 'fillzero' : used for an array helper statement that fills each entry with zero (equivalent to 'fill' statement with the expression be integer literal zero) (reference).

  • 'release' : used for an array helper statement that calls delete on each array entry (but does not deallocate the array space) (reference).

  • 'refill' : used for an array helper statement that first calls delete on each array entry then fill it with the specified expression (reference).

  • 'releasezero' : used for an array helper statement that first calls delete on each array entry then fill it with zero (equivalent to 'refill' statement with the expression be integer literal zero), an alias of 'refillzero')(reference).

  • 'refillzero' : used for an array helper statement that first calls delete on each array entry then fill it with with zero (equivalent to 'refill' statement with the expression be integer literal zero), an alias of 'releasezero')(reference).

  • 'iterate' : used for an array helper statement that executes the specified statement for each array entry (reference).

  • ',,' : used for specifying index range in array helper statements (reference).

  • 'downfrom' : an array statement option to indicate that allocation/deallocation applies to spaces starting from the lowest level in the index specification and goes to the bottom level, and fill/release/iterate applies to entries at the bottom level.

  • 'upto' : an array statement option to indicate that allocation/deallocation applies to spaces upto the lowest level in the index specification, and fill/release/iterate applies to that lowest level in the index specification (which may not be bottom level array entries).

  • 'all' : an array statement option to indicate that allocation/deallocation applies to the whole array space, and fill/release/iterate applies to entries at the bottom level.

  • 'only' : an array statement option to indicate that allocation/deallocation applies to spaces only at the lowest level in the index specification, and fill/release/iterate applies to that same level (which may not be bottom level array entries).

  • 'gigltable' : a type specifier (need to be templated) that is compatible for passing in to a node constructor for a rule child with array type (reference).

  • 'forbid' : used in a statement to forbid a specified rule or a specified set of rules to be selected (reference).

  • 'forbidexcept' : used in a statement to forbid all rules except those specified (reference).

  • 'force' : used in a statement to force selecting the specified rule (only a single rule) (reference).

  • 'nonnegative' : used in a statement to remove negative probabilities can set them to zeros (reference).

    • 'normalize' : used in a statement to normalizes rule probability to 1.0 or a specified expression (reference), and also used as an option in statements that forbid some rules to indicating a normalization to 1.0 to be performed immediately after (reference).

    • 'normalizeto' : used as an option in statements that forbid some rules to indicating a normalization to a specified expression to be performed (reference).

    • 'transferto' : used as an option in statements that forbid some rules to indicating the original probabilities of the forbidden rules to be added to a specified rule (reference).