xo-reader: distinguish interactive sessions

+ allow top-level i64 literals
This commit is contained in:
Roland Conybeare 2025-07-04 10:10:40 -05:00
commit a12a236bc1
16 changed files with 196 additions and 13 deletions

View file

@ -59,10 +59,16 @@ namespace xo {
* }
*
* Grammar:
* toplevel-program = $expression(1); ..; $expression(n)
* toplevel-program = $toplevel-expression(1); ..; $toplevel-expression(n)
*
* if interactive:
* toplevel-expression = expression
* else
* toplevel-expression = type-decl | define-expr
*
* type-decl = decltype $typename [<$tp1 .. $tpn>]
* expression = define-expr
* expression = type-decl
* | define-expr
* | literal-expr
* | variable-expr
* | apply-expr
@ -185,6 +191,10 @@ namespace xo {
**/
bool has_incomplete_expr() const;
/** put parser into state for beginning an interactive session.
**/
void begin_interactive_session();
/** put parser into state for beginning of a translation unit
* (i.e. input stream)
**/