The MOO Code Parser: /lib/parser

The parser is concerned with parsing a complete MOO program and returning an abstract syntax tree.

The parser depends on the MOO lexical analyzer to handle the dirty work of dividing the input into recognizable tokens.

The parser's interface looks like this:

    string program, *errors;
    mixed *result, *ast;

    result = PARSER->main(program);

    if (result[0])
      {
        ast = result[1];
        ...
      }
    else
      {
        errors = result[1];
        ...
      }
If the program was parsed successfully, ({ 1, AST }) is returned containing the abstract syntax tree for the program. Otherwise, ({ 0, errors }) is returned, where errors is an array of strings describing each of the errors found in the program.


rob@ccs.neu.edu