Commit 564ce6e86bcf74307f5bcb797168da80d839a81a

Golmote 2015-08-19T00:42:32

Add tests for Eiffel

diff --git a/tests/languages/eiffel/boolean_feature.test b/tests/languages/eiffel/boolean_feature.test
new file mode 100644
index 0000000..5750be0
--- /dev/null
+++ b/tests/languages/eiffel/boolean_feature.test
@@ -0,0 +1,13 @@
+True
+False
+
+----------------------------------------------------
+
+[
+	["boolean", "True"],
+	["boolean", "False"]
+]
+
+----------------------------------------------------
+
+Checks for booleans.
\ No newline at end of file
diff --git a/tests/languages/eiffel/char_feature.test b/tests/languages/eiffel/char_feature.test
new file mode 100644
index 0000000..6a9b124
--- /dev/null
+++ b/tests/languages/eiffel/char_feature.test
@@ -0,0 +1,15 @@
+'a'
+'%''
+'%/123/'
+
+----------------------------------------------------
+
+[
+	["char", "'a'"],
+	["char", "'%''"],
+	["char", "'%/123/'"]
+]
+
+----------------------------------------------------
+
+Checks for chars.
\ No newline at end of file
diff --git a/tests/languages/eiffel/comment_feature.test b/tests/languages/eiffel/comment_feature.test
new file mode 100644
index 0000000..d911aa7
--- /dev/null
+++ b/tests/languages/eiffel/comment_feature.test
@@ -0,0 +1,13 @@
+--
+-- foo bar
+
+----------------------------------------------------
+
+[
+	["comment", "--"],
+	["comment", "-- foo bar"]
+]
+
+----------------------------------------------------
+
+Checks for comments.
\ No newline at end of file
diff --git a/tests/languages/eiffel/keyword_feature.test b/tests/languages/eiffel/keyword_feature.test
new file mode 100644
index 0000000..cb6ae29
--- /dev/null
+++ b/tests/languages/eiffel/keyword_feature.test
@@ -0,0 +1,39 @@
+across agent alias all and
+attached as assign attribute
+check class convert create
+Current debug deferred detachable
+do else elseif end ensure
+expanded export external
+feature from frozen if
+implies inherit inspect
+invariant like local loop
+not note obsolete old
+once or Precursor redefine
+rename require rescue Result
+retry select separate some
+then undefine until variant
+Void when xor
+
+----------------------------------------------------
+
+[
+	["keyword", "across"], ["keyword", "agent"], ["keyword", "alias"], ["keyword", "all"], ["keyword", "and"],
+	["keyword", "attached"], ["keyword", "as"], ["keyword", "assign"], ["keyword", "attribute"],
+	["keyword", "check"], ["keyword", "class"], ["keyword", "convert"], ["keyword", "create"],
+	["keyword", "Current"], ["keyword", "debug"], ["keyword", "deferred"], ["keyword", "detachable"],
+	["keyword", "do"], ["keyword", "else"], ["keyword", "elseif"], ["keyword", "end"], ["keyword", "ensure"],
+	["keyword", "expanded"], ["keyword", "export"], ["keyword", "external"],
+	["keyword", "feature"], ["keyword", "from"], ["keyword", "frozen"], ["keyword", "if"],
+	["keyword", "implies"], ["keyword", "inherit"], ["keyword", "inspect"],
+	["keyword", "invariant"], ["keyword", "like"], ["keyword", "local"], ["keyword", "loop"],
+	["keyword", "not"], ["keyword", "note"], ["keyword", "obsolete"], ["keyword", "old"],
+	["keyword", "once"], ["keyword", "or"], ["keyword", "Precursor"], ["keyword", "redefine"],
+	["keyword", "rename"], ["keyword", "require"], ["keyword", "rescue"], ["keyword", "Result"],
+	["keyword", "retry"], ["keyword", "select"], ["keyword", "separate"], ["keyword", "some"],
+	["keyword", "then"], ["keyword", "undefine"], ["keyword", "until"], ["keyword", "variant"],
+	["keyword", "Void"], ["keyword", "when"], ["keyword", "xor"]
+]
+
+----------------------------------------------------
+
+Checks for all keywords
\ No newline at end of file
diff --git a/tests/languages/eiffel/number_feature.test b/tests/languages/eiffel/number_feature.test
new file mode 100644
index 0000000..beb3cc7
--- /dev/null
+++ b/tests/languages/eiffel/number_feature.test
@@ -0,0 +1,29 @@
+0xbabe
+0xBAD_A55
+0c7654_1234
+0b1111_0000_0101
+42
+42.
+.42
+1_845.123_456
+3.14e+4
+4_2.5_7e-1_0
+
+----------------------------------------------------
+
+[
+	["number", "0xbabe"],
+	["number", "0xBAD_A55"],
+	["number", "0c7654_1234"],
+	["number", "0b1111_0000_0101"],
+	["number", "42"],
+	["number", "42."],
+	["number", ".42"],
+	["number", "1_845.123_456"],
+	["number", "3.14e+4"],
+	["number", "4_2.5_7e-1_0"]
+]
+
+----------------------------------------------------
+
+Checks for hexadecimal, octal, binary and decimal numbers.
diff --git a/tests/languages/eiffel/operator_feature.test b/tests/languages/eiffel/operator_feature.test
new file mode 100644
index 0000000..fcba4b3
--- /dev/null
+++ b/tests/languages/eiffel/operator_feature.test
@@ -0,0 +1,19 @@
+\\ |..| .. //
+/~ / /=
+< <= > >=
++ - *
+^ = ~
+
+----------------------------------------------------
+
+[
+	["operator", "\\\\"], ["operator", "|..|"], ["operator", ".."], ["operator", "//"],
+	["operator", "/~"], ["operator", "/"], ["operator", "/="],
+	["operator", "<"], ["operator", "<="], ["operator", ">"], ["operator", ">="],
+	["operator", "+"], ["operator", "-"], ["operator", "*"],
+	["operator", "^"], ["operator", "="], ["operator", "~"]
+]
+
+----------------------------------------------------
+
+Checks for all operators
\ No newline at end of file
diff --git a/tests/languages/eiffel/string_feature.test b/tests/languages/eiffel/string_feature.test
new file mode 100644
index 0000000..183bf99
--- /dev/null
+++ b/tests/languages/eiffel/string_feature.test
@@ -0,0 +1,30 @@
+""
+"fo%"o"
+"foo%
+%bar"
+
+"[fo"o
+bar]"
+"!-[fo"o[]
+bar]!-"
+"{fo"o
+bar}"
+"*?{fo"o{}
+bar}*?"
+
+----------------------------------------------------
+
+[
+	["string", "\"\""],
+	["string", "\"fo%\"o\""],
+	["string", "\"foo%\r\n%bar\""],
+
+	["string", "\"[fo\"o\r\nbar]\""],
+	["string", "\"!-[fo\"o[]\r\nbar]!-\""],
+	["string", "\"{fo\"o\r\nbar}\""],
+	["string", "\"*?{fo\"o{}\r\nbar}*?\""]
+]
+
+----------------------------------------------------
+
+Checks for strings, multi-line strings, and aligned and non aligned verbatim strings.
\ No newline at end of file