view src/parse.h @ 69:bc9b86683bc3

expr: Add EXCEPTION type
author Lewin Bormann <lbo@spheniscida.de>
date Sun, 25 Aug 2019 16:04:53 +0200
parents 1b061b1fecdf
children d197a9c11953
line wrap: on
line source

#ifndef src_parse_h
#define src_parse_h

/**
 * @file parse.h
 * @brief Parse a program source code stream into a tree of `yexpr_t`.
 * @addtogroup frontend
 * @{
 */

#include <gen/y.tab.h>
#include <src/expr.h>
#include <src/base/str.h>

#include <stdio.h>

/**
 * @brief Parse `input` (which can be a string, see `fmemopen(3)`).
 *
 * If successful, `true` is returned, and the top-level s-exprs are stored as list into `result`.
 *
 * If not successful, `false` is returned, and `error` will contain a description of the error.
 */
bool yparse(FILE* input, yexpr_t* result, ystr_t* error);

/**
 * @}
 */

#endif