Files
control-see/ldtext/test.fsx

26 lines
733 B
Plaintext

#load ".paket/load/net9.0/main.group.fsx"
#load "LDText.fs"
#load "Parser.fs"
#load "Lexer.fs"
let mutable failed = false
let parse (s:string) =
let lexbuf = s |> System.Text.Encoding.ASCII.GetBytes |> FSharp.Text.Lexing.LexBuffer<byte>.FromBytes
let msg =
try
sprintf "%A" <| Parser.rung Lexer.read lexbuf
with e ->
let pos = lexbuf.EndPos
let lastToken = System.Text.Encoding.ASCII.GetString lexbuf.Lexeme
failed <- true
sprintf "Parse failed at %d, last token = %A" pos.AbsoluteOffset lastToken
printf "%A -> %s\n" s msg
parse "abc();"
parse "abc(def);"
parse "abc(def,ghi);"
parse "abc(def,ghi) a(b) ;"
if failed then exit 1 else exit 0