aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--lib/lexer.mll3
-rw-r--r--lib/world.mli7
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/lexer.mll b/lib/lexer.mll
index 417369b..90beacf 100644
--- a/lib/lexer.mll
+++ b/lib/lexer.mll
@@ -27,7 +27,8 @@ let ident = ['A'-'Z' 'a'-'z'] ['A'-'Z' 'a'-'z' '0'-'9' '_']*
let string_body = ([^ '"' '\\'] | '\\' _)*
rule token = parse
- | [' ' '\t' '\r' '\n']+ { token lexbuf }
+ | '\n' { Lexing.new_line lexbuf; token lexbuf }
+ | [' ' '\t' '\r']+ { token lexbuf }
| '%' [^ '\n']* { token lexbuf }
| "#(" { HASH_LPAREN }
| '(' { LPAREN }
diff --git a/lib/world.mli b/lib/world.mli
index 0a3bb9a..51ee078 100644
--- a/lib/world.mli
+++ b/lib/world.mli
@@ -79,6 +79,13 @@ type pending = {
attribute value; admissible iff it has a solution. *)
}
+val expr_of_node : Ast.node -> (expr, error) result
+(** Compiles one surface expression: names resolve by context,
+ [Exists] lowers, quantified variables rename apart. This is the
+ embedding hosts' way in: they compile queries themselves and
+ answer for their own relations, so no standalone reference
+ checking happens here. *)
+
(** The standalone world: an immutable catalog loaded from program
text. This is Sol as a separate language; there are no branches,
no transitions, only the pure fragment. *)