Formatting.
This commit is contained in:
parent
f45d070856
commit
97f715a10d
|
|
@ -23,43 +23,36 @@ let rec joy_to_string jt =
|
||||||
|
|
||||||
and expression_to_string el = String.concat " " (List.map joy_to_string el)
|
and expression_to_string el = String.concat " " (List.map joy_to_string el)
|
||||||
|
|
||||||
|
type token = Left_bracket | Right_bracket | Token of string
|
||||||
|
|
||||||
|
let delimiter str last =
|
||||||
type token =
|
last >= String.length str || String.contains "[] " (String.get str last)
|
||||||
| Left_bracket
|
|
||||||
| Right_bracket
|
|
||||||
| Token of string
|
|
||||||
|
|
||||||
let delimiter ch = String.contains "[] " ch
|
|
||||||
|
|
||||||
(* string -> int -> int -> token * int *)
|
(* string -> int -> int -> token * int *)
|
||||||
let rec tokenize1 str start last =
|
let rec tokenize1 str start last =
|
||||||
if last >= String.length str || delimiter (String.get str last)
|
if delimiter str last then (Token (String.sub str start (last - start)), last)
|
||||||
then (Token (String.sub str start (last - start)), last)
|
|
||||||
else tokenize1 str start (last + 1)
|
else tokenize1 str start (last + 1)
|
||||||
|
|
||||||
let rec tokenize0 str start acc =
|
let rec tokenize0 str start acc =
|
||||||
if start >= String.length str
|
if start >= String.length str then acc
|
||||||
then acc
|
|
||||||
else
|
else
|
||||||
let ch = String.get str start in
|
let ch = String.get str start in
|
||||||
match ch with
|
match ch with
|
||||||
| '[' -> Left_bracket :: (tokenize0 str (start + 1) acc)
|
| '[' -> Left_bracket :: tokenize0 str (start + 1) acc
|
||||||
| ']' -> Right_bracket :: (tokenize0 str (start + 1) acc)
|
| ']' -> Right_bracket :: tokenize0 str (start + 1) acc
|
||||||
| ' ' -> tokenize0 str (start + 1) acc
|
| ' ' -> tokenize0 str (start + 1) acc
|
||||||
| _ -> let (token, n) = tokenize1 str start (start + 1) in
|
| _ ->
|
||||||
token :: (tokenize0 str n acc)
|
let token, n = tokenize1 str start (start + 1) in
|
||||||
|
token :: tokenize0 str n acc
|
||||||
|
|
||||||
let tokenize str = tokenize0 str 0 []
|
let tokenize str = tokenize0 str 0 []
|
||||||
|
|
||||||
|
|
||||||
let token_to_string token =
|
let token_to_string token =
|
||||||
match token with
|
match token with
|
||||||
| Left_bracket -> "["
|
| Left_bracket -> "["
|
||||||
| Right_bracket -> "]"
|
| Right_bracket -> "]"
|
||||||
| Token str -> str
|
| Token str -> str
|
||||||
|
|
||||||
|
|
||||||
(*
|
(*
|
||||||
let char_tok ch acc =
|
let char_tok ch acc =
|
||||||
match ch with
|
match ch with
|
||||||
|
|
@ -86,9 +79,8 @@ let s = String.concat "" (List.map token_to_string (text_to_expression "1 [2]3"
|
||||||
|
|
||||||
(* let () = print_endline (joy_to_string dummy) *)
|
(* let () = print_endline (joy_to_string dummy) *)
|
||||||
|
|
||||||
let s = String.concat " " (List.map token_to_string (tokenize "1 [2]3" ))
|
let s = String.concat " " (List.map token_to_string (tokenize "1 [2]3"))
|
||||||
|
|
||||||
|
let () =
|
||||||
let () =
|
print_endline s;
|
||||||
print_endline s ;
|
print_endline (joy_to_string dummy)
|
||||||
print_endline (joy_to_string dummy)
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue