summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Lawrence <scott+git@ineffectivetheory.com>2024-06-25 21:11:01 -0700
committerScott Lawrence <scott+git@ineffectivetheory.com>2024-06-25 21:11:01 -0700
commit062d3944ee86c273ad3919993185d5901768ef2d (patch)
tree585eeff84f1885c7d8748c267eb5ee171d3271e6
parent5c245e98d57be64bc329ba7b813a03260e6281c6 (diff)
downloadagate-062d3944ee86c273ad3919993185d5901768ef2d.tar.gz
agate-062d3944ee86c273ad3919993185d5901768ef2d.tar.bz2
agate-062d3944ee86c273ad3919993185d5901768ef2d.zip
Attempting to use sedlex (and maybe Menhir)
-rw-r--r--agate.opam2
-rw-r--r--bin/dune3
-rw-r--r--bin/main.ml12
-rw-r--r--dune-project2
4 files changed, 16 insertions, 3 deletions
diff --git a/agate.opam b/agate.opam
index fcd4bfe..c9cea14 100644
--- a/agate.opam
+++ b/agate.opam
@@ -12,6 +12,8 @@ bug-reports: "https://github.com/username/reponame/issues"
depends: [
"ocaml"
"dune" {>= "3.16"}
+ "sedlex"
+ "menhir"
"odoc" {with-doc}
]
build: [
diff --git a/bin/dune b/bin/dune
index 33c70b5..edad4dc 100644
--- a/bin/dune
+++ b/bin/dune
@@ -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)))