scripts/CodeMirror/mode/dylan/test.js (view raw)
1// CodeMirror, copyright (c) by Marijn Haverbeke and others
2// Distributed under an MIT license: https://codemirror.net/LICENSE
3
4(function() {
5 var mode = CodeMirror.getMode({indentUnit: 2}, "dylan");
6 function MT(name) { test.mode(name, mode, Array.prototype.slice.call(arguments, 1)); }
7
8 MT('comments',
9 '[comment // This is a line comment]',
10 '[comment /* This is a block comment */]',
11 '[comment /* This is a multi]',
12 '[comment line comment]',
13 '[comment */]',
14 '[comment /* And this is a /*]',
15 '[comment /* nested */ comment */]');
16
17 MT('unary_operators',
18 '[operator -][variable a]',
19 '[operator -] [variable a]',
20 '[operator ~][variable a]',
21 '[operator ~] [variable a]');
22
23 MT('binary_operators',
24 '[variable a] [operator +] [variable b]',
25 '[variable a] [operator -] [variable b]',
26 '[variable a] [operator *] [variable b]',
27 '[variable a] [operator /] [variable b]',
28 '[variable a] [operator ^] [variable b]',
29 '[variable a] [operator =] [variable b]',
30 '[variable a] [operator ==] [variable b]',
31 '[variable a] [operator ~=] [variable b]',
32 '[variable a] [operator ~==] [variable b]',
33 '[variable a] [operator <] [variable b]',
34 '[variable a] [operator <=] [variable b]',
35 '[variable a] [operator >] [variable b]',
36 '[variable a] [operator >=] [variable b]',
37 '[variable a] [operator &] [variable b]',
38 '[variable a] [operator |] [variable b]',
39 '[variable a] [operator :=] [variable b]');
40
41 MT('integers',
42 '[number 1]',
43 '[number 123]',
44 '[number -123]',
45 '[number +456]',
46 '[number #b010]',
47 '[number #o073]',
48 '[number #xabcDEF123]');
49
50 MT('floats',
51 '[number .3]',
52 '[number -1.]',
53 '[number -2.335]',
54 '[number +3.78d1]',
55 '[number 3.78s-1]',
56 '[number -3.32e+5]');
57
58 MT('characters_and_strings',
59 "[string 'a']",
60 "[string '\\\\'']",
61 '[string ""]',
62 '[string "a"]',
63 '[string "abc def"]',
64 '[string "More escaped characters: \\\\\\\\ \\\\a \\\\b \\\\e \\\\f \\\\n \\\\r \\\\t \\\\0 ..."]');
65
66 MT('brackets',
67 '[bracket #[[]]]',
68 '[bracket #()]',
69 '[bracket #(][number 1][bracket )]',
70 '[bracket [[][number 1][punctuation ,] [number 3][bracket ]]]',
71 '[bracket ()]',
72 '[bracket {}]',
73 '[keyword if] [bracket (][variable foo][bracket )]',
74 '[bracket (][number 1][bracket )]',
75 '[bracket [[][number 1][bracket ]]]');
76
77 MT('hash_words',
78 '[punctuation ##]',
79 '[atom #f]', '[atom #F]',
80 '[atom #t]', '[atom #T]',
81 '[atom #all-keys]',
82 '[atom #include]',
83 '[atom #key]',
84 '[atom #next]',
85 '[atom #rest]',
86 '[string #"foo"]',
87 '[error #invalid]');
88})();