Functions ^

new_list

Create a new list node. The specified item is assigned to the node's value. Returns the newly created node.

add_item

Add a new item to the specified list. The item is added at the back of the list, so items added are kept in order.

A pointer to the beginning of the list is returned (the same as was specified).

include_file

Process the specified file.

update_unique_id

expand

Expand the specified macro (or constant).

define_constant

Define the specified name as an alias for the specified value.

define_macro

Define a macro by the given name, parameters and body.

find_macro

Find the specified macro. If the specified macro does not exist, NULL is returned.

concat

Concatenate two strings, and return the result. If the first string is NULL, then the result consists of the second string. If need_space is true, a space is inserted between the two strings.

emit

Emit the specified string. This function will be the "gateway" to the output file. All tokens except .sub, .end and .namespace are indented. All tokens are separated with a space, ), ], ,.

new_constant_table

pop_constant_table

delete_constant_table

munge_id

Generate an identifier based on a macro label or locaal declaration, or a macro label or local expansion.

A label declaration looks like: ".label $LABEL:", from which a normal PIR label is created, formatted as: "_unique_MACRO_LABEL_?:".

A label expansion looks like ".$LABEL", from which a label identifier is generated, formatted as: "_unique_MACRO_LABEL_?" (note the difference, there is no colon at the end.

The same works for local identifiers, but of course the is_label_declaration argument must be 0 for that.

process_string

Process the string stored in buffer. First a new yyscan_t object is created, initialized, after which the specified buffer is parsed. Afterwards the yyscan_t object is destroyed.

process_file

Process the specified file.

print_help

yyerror

Function for syntax error handling.

main

Pre-processor main function.


parrot