diff options
| author | Scott Lawrence <scott+git@ineffectivetheory.com> | 2024-06-25 21:11:01 -0700 |
|---|---|---|
| committer | Scott Lawrence <scott+git@ineffectivetheory.com> | 2024-06-25 21:11:01 -0700 |
| commit | 062d3944ee86c273ad3919993185d5901768ef2d (patch) | |
| tree | 585eeff84f1885c7d8748c267eb5ee171d3271e6 | |
| parent | 5c245e98d57be64bc329ba7b813a03260e6281c6 (diff) | |
| download | agate-062d3944ee86c273ad3919993185d5901768ef2d.tar.gz agate-062d3944ee86c273ad3919993185d5901768ef2d.tar.bz2 agate-062d3944ee86c273ad3919993185d5901768ef2d.zip | |
Attempting to use sedlex (and maybe Menhir)
| -rw-r--r-- | agate.opam | 2 | ||||
| -rw-r--r-- | bin/dune | 3 | ||||
| -rw-r--r-- | bin/main.ml | 12 | ||||
| -rw-r--r-- | dune-project | 2 |
4 files changed, 16 insertions, 3 deletions
@@ -12,6 +12,8 @@ bug-reports: "https://github.com/username/reponame/issues" depends: [ "ocaml" "dune" {>= "3.16"} + "sedlex" + "menhir" "odoc" {with-doc} ] build: [ @@ -1,4 +1,5 @@ (executable (public_name agate) (name main) - (libraries agate)) + (libraries agate sedlex) + (preprocess (pps sedlex.ppx))) diff --git a/bin/main.ml b/bin/main.ml index 7bf6048..de7cd87 100644 --- a/bin/main.ml +++ b/bin/main.ml @@ -1 +1,11 @@ -let () = print_endline "Hello, World!" +let rec token buf = + match%sedlex buf with + | white_space -> token buf + | "a" -> token buf + | "b" -> 2 + | eof -> 0 + | _ -> failwith "Unknown token" + +let () = + let lexbuf = Sedlexing.Utf8.from_string "ab" in + print_newline (print_int (token lexbuf)) diff --git a/dune-project b/dune-project index 41ac7cf..d636dc5 100644 --- a/dune-project +++ b/dune-project @@ -19,7 +19,7 @@ (name agate) (synopsis "A strongly typed concatenative language") (description "A strongly typed concatenative language") - (depends ocaml dune) + (depends ocaml dune sedlex) (tags (topics "to describe" your project))) |
