From d9c809a5550b2fe23b2fd1e66672b503730d55f1 Mon Sep 17 00:00:00 2001 From: Vladimir Azarov Date: Sun, 25 May 2025 19:59:56 +0200 Subject: Expression parsing --- ppc.fun | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'ppc.fun') diff --git a/ppc.fun b/ppc.fun index bb07107..6f4e8b2 100644 --- a/ppc.fun +++ b/ppc.fun @@ -147,6 +147,22 @@ struct prefix end + val PtkPos = fn z => + let + fun PtkPos (out, TkPos (p as T.S.Pos (fname, line, col), layers)) = + case layers of + [] => Printf out T.S.Ppos p % + | _ => + let + val prefix = PlayersCompact (out, SOME fname, layers) + val fname = String.extract (fname, size prefix, NONE) + in + Printf out `"; @" T.S.Ppos (T.S.Pos (fname, line, col)) % + end + in + bind A1 PtkPos + end z + val startCache = (0, [], ("", 0)) fun printTokenCompact (off, layers, (fname, line)) out (tk, pos) = @@ -961,7 +977,7 @@ struct updatePpc P u#buffer (updateH head) % end - and getTokenSkipNL ppc = + fun getTokenSkipNL ppc = let val (tk, pos, ppc) = getToken ppc in -- cgit v1.2.3