ExC v0.2.0 Parser View Source

Parses the Output Token List (OTL) from Lexer.tokenize/1 into an Output Abstract Syntax Tree (OAST).

Link to this section Summary

Functions

Returns a tuple containing a status token, the Output Abstract Syntax Tree (OAST), a token list and a possible error cause.

Link to this section Functions

Returns a tuple containing a status token, the Output Abstract Syntax Tree (OAST), a token list and a possible error cause.

Specs

otl is the Output Token List which is a list of the tokens found in the source code string. This list is generated by the Lexer in Lexer.tokenize/1. gast is a General Abstract Syntax Tree which is list of Structs.Node that contains the source language grammar production rules.

Returns the following elements:

  • status_atom : indicates if the parsing could be completed successfully. If not, then the following error tokens are returned:

    • :token_missing_error : thrown when the source code is missing something or the order of the tokens is not correct. For example:

        int main() {
            2;
        } 

      where the token returnis missing.

    • :token_not_absorbed : thrown when the structure is correct but it has an extra token. For example:

        int main() {
            return 2;
        } main

    where the token mainis unnecessary.

  • output_ast : abstract syntax tree representing the source code.

  • token_list : token list found in the source code.

  • error_cause : description of the error cause.