Ocaml Parsing a list -
hi guys parse "[a;b;c;d;e;f;g]" "a::b::c::d::e::f::g::[]" in part of parser have
listops: | combops coloncolon listops { bin($1,cons,$3) } | combops semi listops { bin($1,cons,$3) } | combops { $1 } ; and have farther down.
| lbrac rbrac { nilexpr } | lbrac listops rbrac { $2 } but i'm not sure how read list between "[" , "]" having "::[]" @ end of it. ideas?
your grammar given doesn't quite right me. in essence treats :: , ; identically. treat [a::b] , [a;b] same. if figure out how handle 2 cases differently, you'll find place handle [] @ end of list specified ::.
as side comment, if allow a :: b :: [] allowing right side of :: non-empty list. might want a :: [b] allowed, in ocaml. or maybe you'd rather not, it's grammar!
list parsing ocaml lexing cons
No comments:
Post a Comment