diff --git a/tests/lex/02.in b/tests/lex/02.in index 20193c0..a85bb4c 100644 --- a/tests/lex/02.in +++ b/tests/lex/02.in @@ -5,3 +5,30 @@ -0 0 +0 + +-.1 +.1 ++.1 + +-0.1 +0.1 ++0.1 + +-1.5 +1.5 ++1.5 + +-0e9 +0e9 ++0e9 + +-1.2e5 +1.2e5 ++1.2e5 + +-1.2e-5 +1.2e-5 ++1.2e-5 + +0xfacebeef +0723414 diff --git a/tests/lex/02.out b/tests/lex/02.out index ed43fa5..ee96d70 100644 --- a/tests/lex/02.out +++ b/tests/lex/02.out @@ -4,3 +4,23 @@ {t_real_number -0} {t_real_number 0} {t_real_number +0} +{t_real_number -.1} +{t_real_number .1} +{t_real_number +.1} +{t_real_number -0.1} +{t_real_number 0.1} +{t_real_number +0.1} +{t_real_number -1.5} +{t_real_number 1.5} +{t_real_number +1.5} +{t_real_number -0e9} +{t_real_number 0e9} +{t_real_number +0e9} +{t_real_number -1.2e5} +{t_real_number 1.2e5} +{t_real_number +1.2e5} +{t_real_number -1.2e-5} +{t_real_number 1.2e-5} +{t_real_number +1.2e-5} +{t_real_number 0xfacebeef} +{t_real_number 0723414} diff --git a/tests/lex/03.in b/tests/lex/03.in new file mode 100644 index 0000000..c1d27c1 --- /dev/null +++ b/tests/lex/03.in @@ -0,0 +1,6 @@ +-1+2i +-1-2i +1+2i +1-2i ++1+2i ++1-2i diff --git a/tests/lex/03.out b/tests/lex/03.out new file mode 100644 index 0000000..19edf55 --- /dev/null +++ b/tests/lex/03.out @@ -0,0 +1,12 @@ +{t_real_number -1} +{t_imaginary_number +2i} +{t_real_number -1} +{t_imaginary_number -2i} +{t_real_number 1} +{t_imaginary_number +2i} +{t_real_number 1} +{t_imaginary_number -2i} +{t_real_number +1} +{t_imaginary_number +2i} +{t_real_number +1} +{t_imaginary_number -2i} diff --git a/tests/lex/04.in b/tests/lex/04.in new file mode 100644 index 0000000..c242987 --- /dev/null +++ b/tests/lex/04.in @@ -0,0 +1,3 @@ +"a string literal" +"a sring with \"escaped quotes\" in it" +"a string with 'single quotes' in it" diff --git a/tests/lex/04.out b/tests/lex/04.out new file mode 100644 index 0000000..43d8a83 --- /dev/null +++ b/tests/lex/04.out @@ -0,0 +1,3 @@ +{t_string a string literal} +{t_string a sring with "escaped quotes" in it} +{t_string a string with 'single quotes' in it} diff --git a/tests/lex/05.in b/tests/lex/05.in new file mode 100644 index 0000000..06f50a2 --- /dev/null +++ b/tests/lex/05.in @@ -0,0 +1,8 @@ + +errant_name + +no_value: + +key: var_name + +key: "string" diff --git a/tests/lex/05.out b/tests/lex/05.out new file mode 100644 index 0000000..ccf0484 --- /dev/null +++ b/tests/lex/05.out @@ -0,0 +1,9 @@ +{t_name errant_name} +{t_name no_value} +{t_object_separator :} +{t_name key} +{t_object_separator :} +{t_name var_name} +{t_name key} +{t_object_separator :} +{t_string string} diff --git a/tests/lex/06.in b/tests/lex/06.in new file mode 100644 index 0000000..ee64846 --- /dev/null +++ b/tests/lex/06.in @@ -0,0 +1,4 @@ +[] +[1 2 3] +["string one" "string two"] +[[1 2 3][]["string one" "string two"]] diff --git a/tests/lex/06.out b/tests/lex/06.out new file mode 100644 index 0000000..c0e2e6f --- /dev/null +++ b/tests/lex/06.out @@ -0,0 +1,24 @@ +{t_list_start [} +{t_list_end ]} +{t_list_start [} +{t_real_number 1} +{t_real_number 2} +{t_real_number 3} +{t_list_end ]} +{t_list_start [} +{t_string string one} +{t_string string two} +{t_list_end ]} +{t_list_start [} +{t_list_start [} +{t_real_number 1} +{t_real_number 2} +{t_real_number 3} +{t_list_end ]} +{t_list_start [} +{t_list_end ]} +{t_list_start [} +{t_string string one} +{t_string string two} +{t_list_end ]} +{t_list_end ]} diff --git a/tests/lex/07.in b/tests/lex/07.in new file mode 100644 index 0000000..ff79fb9 --- /dev/null +++ b/tests/lex/07.in @@ -0,0 +1,11 @@ +empty_object: {} + +crazy_object: { + key: variable + key_two: "string here" + key_three: [1 2 3] + key_four: { + nested_one: "alright" + nested_two: [4 5 6] + } +} diff --git a/tests/lex/07.out b/tests/lex/07.out new file mode 100644 index 0000000..4c232a4 --- /dev/null +++ b/tests/lex/07.out @@ -0,0 +1,35 @@ +{t_name empty_object} +{t_object_separator :} +{t_object_start {} +{t_object_end }} +{t_name crazy_object} +{t_object_separator :} +{t_object_start {} +{t_name key} +{t_object_separator :} +{t_name variable} +{t_name key_two} +{t_object_separator :} +{t_string string here} +{t_name key_three} +{t_object_separator :} +{t_list_start [} +{t_real_number 1} +{t_real_number 2} +{t_real_number 3} +{t_list_end ]} +{t_name key_four} +{t_object_separator :} +{t_object_start {} +{t_name nested_one} +{t_object_separator :} +{t_string alright} +{t_name nested_two} +{t_object_separator :} +{t_list_start [} +{t_real_number 4} +{t_real_number 5} +{t_real_number 6} +{t_list_end ]} +{t_object_end }} +{t_object_end }}