ExC v0.4.2 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.