Commit dd417d7dab9dca98bc7e285af58ff9a977c6db58

Golmote 2015-09-07T21:52:09

Add tests for Monkey

diff --git a/tests/languages/monkey/comment_feature.test b/tests/languages/monkey/comment_feature.test
new file mode 100644
index 0000000..da20a31
--- /dev/null
+++ b/tests/languages/monkey/comment_feature.test
@@ -0,0 +1,15 @@
+' Foobar
+#Rem Foo
+Bar 'Baz
+#End
+
+----------------------------------------------------
+
+[
+	["comment", "' Foobar"],
+	["comment", "#Rem Foo\r\nBar 'Baz\r\n#End"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/tests/languages/monkey/function_feature.test b/tests/languages/monkey/function_feature.test
new file mode 100644
index 0000000..21debeb
--- /dev/null
+++ b/tests/languages/monkey/function_feature.test
@@ -0,0 +1,13 @@
+foobar()
+Foo_Bar_42()
+
+----------------------------------------------------
+
+[
+	["function", "foobar"], ["punctuation", "("], ["punctuation", ")"],
+	["function", "Foo_Bar_42"], ["punctuation", "("], ["punctuation", ")"]
+]
+
+----------------------------------------------------
+
+Checks for functions.
\ No newline at end of file
diff --git a/tests/languages/monkey/keyword_feature.test b/tests/languages/monkey/keyword_feature.test
new file mode 100644
index 0000000..9e7d8b0
--- /dev/null
+++ b/tests/languages/monkey/keyword_feature.test
@@ -0,0 +1,125 @@
+Void
+Strict
+Public
+Private
+Property
+Bool
+Int
+Float
+String
+Array
+Object
+Continue
+Exit
+Import
+Extern
+New
+Self
+Super
+Try
+Catch
+Eachin
+True
+False
+Extends
+Abstract
+Final
+Select
+Case
+Default
+Const
+Local
+Global
+Field
+Method
+Function
+Class
+End
+If
+Then
+Else
+ElseIf
+EndIf
+While
+Wend
+Repeat
+Until
+Forever
+For
+To
+Step
+Next
+Return
+Module
+Interface
+Implements
+Inline
+Throw
+Null
+
+----------------------------------------------------
+
+[
+	["keyword", "Void"],
+	["keyword", "Strict"],
+	["keyword", "Public"],
+	["keyword", "Private"],
+	["keyword", "Property"],
+	["keyword", "Bool"],
+	["keyword", "Int"],
+	["keyword", "Float"],
+	["keyword", "String"],
+	["keyword", "Array"],
+	["keyword", "Object"],
+	["keyword", "Continue"],
+	["keyword", "Exit"],
+	["keyword", "Import"],
+	["keyword", "Extern"],
+	["keyword", "New"],
+	["keyword", "Self"],
+	["keyword", "Super"],
+	["keyword", "Try"],
+	["keyword", "Catch"],
+	["keyword", "Eachin"],
+	["keyword", "True"],
+	["keyword", "False"],
+	["keyword", "Extends"],
+	["keyword", "Abstract"],
+	["keyword", "Final"],
+	["keyword", "Select"],
+	["keyword", "Case"],
+	["keyword", "Default"],
+	["keyword", "Const"],
+	["keyword", "Local"],
+	["keyword", "Global"],
+	["keyword", "Field"],
+	["keyword", "Method"],
+	["keyword", "Function"],
+	["keyword", "Class"],
+	["keyword", "End"],
+	["keyword", "If"],
+	["keyword", "Then"],
+	["keyword", "Else"],
+	["keyword", "ElseIf"],
+	["keyword", "EndIf"],
+	["keyword", "While"],
+	["keyword", "Wend"],
+	["keyword", "Repeat"],
+	["keyword", "Until"],
+	["keyword", "Forever"],
+	["keyword", "For"],
+	["keyword", "To"],
+	["keyword", "Step"],
+	["keyword", "Next"],
+	["keyword", "Return"],
+	["keyword", "Module"],
+	["keyword", "Interface"],
+	["keyword", "Implements"],
+	["keyword", "Inline"],
+	["keyword", "Throw"],
+	["keyword", "Null"]
+]
+
+----------------------------------------------------
+
+Checks for keywords.
\ No newline at end of file
diff --git a/tests/languages/monkey/number_feature.test b/tests/languages/monkey/number_feature.test
new file mode 100644
index 0000000..5d943c1
--- /dev/null
+++ b/tests/languages/monkey/number_feature.test
@@ -0,0 +1,19 @@
+0
+42
+3.14159
+.5
+$BadFace
+
+----------------------------------------------------
+
+[
+	["number", "0"],
+	["number", "42"],
+	["number", "3.14159"],
+	["number", ".5"],
+	["number", "$BadFace"]
+]
+
+----------------------------------------------------
+
+Checks for numbers.
\ No newline at end of file
diff --git a/tests/languages/monkey/operator_feature.test b/tests/languages/monkey/operator_feature.test
new file mode 100644
index 0000000..0a468b0
--- /dev/null
+++ b/tests/languages/monkey/operator_feature.test
@@ -0,0 +1,41 @@
+..
+< <> <=
+> >=
+=
+:=
++ +=
+- -=
+* *=
+/ /=
+& &=
+~ ~=
+| |=
+Mod Mod=
+Shl Shl=
+Shr Shr=
+And Not Or
+
+----------------------------------------------------
+
+[
+	["operator", ".."],
+	["operator", "<"], ["operator", "<>"], ["operator", "<="],
+	["operator", ">"], ["operator", ">="],
+	["operator", "="],
+	["operator", ":="],
+	["operator", "+"], ["operator", "+="],
+	["operator", "-"], ["operator", "-="],
+	["operator", "*"], ["operator", "*="],
+	["operator", "/"], ["operator", "/="],
+	["operator", "&"], ["operator", "&="],
+	["operator", "~"], ["operator", "~="],
+	["operator", "|"], ["operator", "|="],
+	["operator", "Mod"], ["operator", "Mod="],
+	["operator", "Shl"], ["operator", "Shl="],
+	["operator", "Shr"], ["operator", "Shr="],
+	["operator", "And"], ["operator", "Not"], ["operator", "Or"]
+]
+
+----------------------------------------------------
+
+Checks for operators.
\ No newline at end of file
diff --git a/tests/languages/monkey/preprocessor_feature.test b/tests/languages/monkey/preprocessor_feature.test
new file mode 100644
index 0000000..dd9cc73
--- /dev/null
+++ b/tests/languages/monkey/preprocessor_feature.test
@@ -0,0 +1,15 @@
+#If HOST
+#ElseIf
+#Else
+
+----------------------------------------------------
+
+[
+	["preprocessor", "#If HOST"],
+	["preprocessor", "#ElseIf"],
+	["preprocessor", "#Else"]
+]
+
+----------------------------------------------------
+
+Checks for preprocessor directives.
\ No newline at end of file
diff --git a/tests/languages/monkey/string_feature.test b/tests/languages/monkey/string_feature.test
new file mode 100644
index 0000000..21b2dc7
--- /dev/null
+++ b/tests/languages/monkey/string_feature.test
@@ -0,0 +1,13 @@
+""
+"Foo ~qBar~q"
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "\"Foo ~qBar~q\""]
+]
+
+----------------------------------------------------
+
+Checks for strings.
\ No newline at end of file
diff --git a/tests/languages/monkey/type-char_feature.test b/tests/languages/monkey/type-char_feature.test
new file mode 100644
index 0000000..9590a7d
--- /dev/null
+++ b/tests/languages/monkey/type-char_feature.test
@@ -0,0 +1,17 @@
+foo?
+bar%
+baz#
+foobar$
+
+----------------------------------------------------
+
+[
+	"foo", ["type-char", "?"],
+	"\r\nbar", ["type-char", "%"],
+	"\r\nbaz", ["type-char", "#"],
+	"\r\nfoobar", ["type-char", "$"]
+]
+
+----------------------------------------------------
+
+Checks for type chars.
\ No newline at end of file