Skip to content

Commit 3c7e44c

Browse files
committed
Created new Model Tests for each feature, where possible. The formatter is inexplicably failing/crashing??
1 parent cdb10be commit 3c7e44c

21 files changed

+388
-71
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
2+
<error descr="Unrecognised annotation">@bananana</error>
3+
let a = a | <warning>b</warning> | c;
4+
5+
let asd = (asd);
6+
7+
let c = "bbasdas";
8+
9+
10+
// asdasdas d
11+
12+
// asdasda my hands...
13+
14+
/* Hi there
15+
How are you?
16+
I am well...
17+
Good for you...
18+
This is a very long comment, isnt it?
19+
20+
...
21+
22+
Yep.
23+
*/
24+
25+
@Ignored
26+
let pa = "bbasdas" banana ;
27+
28+
29+
@Ignored
30+
let bb = bb | "aaa" | asd ;
31+
32+
let <warning descr="Rule is never used.">ccc</warning> = (a <warning>b</warning>) | c ;
33+
34+
let <warning descr="Rule is never used.">dddd</warning> = "Asdasd \"";
35+
36+
@Literal
37+
let <warning descr="Rule is never used.">eeeee</warning> = '''asdas \' ''';
38+
39+
@Literal
40+
let <warning descr="Rule is never used.">dfas</warning> = "dasda";
41+
42+
let <warning descr="Rule is never used.">f</warning> = "asdasdasd"*;
43+
44+
let <warning descr="Rule is never used.">g</warning> = <error descr="Only rule annotated as @regex may contain negations.">!</error>('x'|'x'|'s'|'s'|'a');
45+
46+
let <warning descr="Rule is never used.">h</warning> = <warning>['s'..'d']</warning> banana;
47+
48+
let <warning descr="Rule is never used.">bacon</warning> = "a"{5,9};
49+
50+
let <warning descr="Rule is never used.">toast</warning> = <warning>asdasd</warning>;
51+
52+
let banana = asd;
53+
54+
let <warning descr="Rule is never used.">ajsd</warning> = bacon <warning>roll</warning>;
55+
56+
57+
let m = n;
58+
let n = o;
59+
let o = m;

Plugin/TestAssets/working/AnnotatorTestData.java

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
let a = b;
2+
let b = b;
3+
let c = a;<caret>
4+
//let banana = "123";
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
let a = b;
2+
let b = b;
3+
//let c = a;
4+
//let banana = "123";
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
let a = b;
2+
let b = b;
3+
//let c = a;
4+
let banana = "123";

Plugin/TestAssets/working/CompleteTestData.java

Lines changed: 0 additions & 6 deletions
This file was deleted.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
let a = "a";
2+
let b = a <caret>;
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
let a = b;
2+
let b<caret> = b;
3+
let c = a;
4+
let banana = "123";
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
let program = assignment*;
2+
3+
let assignment = annotation* 'let' identifier '=' rules ';';
4+
5+
let rules = ruleElement ('|'? ruleElement)*;
6+
7+
let ruleElement = predicate?
8+
<fold text="(..)">( string
9+
| identifier
10+
| range
11+
| nestedRules
12+
| any
13+
) quantifier?;
14+
15+
let nestedRules = "(" rules ")";
16+
17+
let quantifier = <fold text="...">'*'
18+
| '?'
19+
| '+'
20+
| arbitraryQuantifier;
21+
22+
let annotation = '@' identifier;
23+
24+
let arbitraryQuantifier = '{' number (',' number)? '}';
25+
26+
let range = '['string '..'']';
27+
28+
let identifier = character+;
29+
30+
let string = ('"' | "'") (character | number | whitespace)* ('"' | "'");
31+
32+
@Literal let predicate = '!' ;
33+
@Literal let any = '.';
34+
35+
let character = ['A'..'z'] ;
36+
let number = ['0'..'9'];
37+
38+
@Ignored let linebreak = '\n' | '\r';
39+
@Ignored let whitespace = ' ' | '\t';
40+
41+
@Ignored let lineComment = '//' (character | number | whitespace)*;
42+
@Ignored let blockComment = '/*' (character | number | whitespace | linebreak)* '*/';
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
let program = assignment*;
2+
3+
let assignment = annotation* 'let' identifier '=' rules ';';
4+
5+
let rules = ruleElement ('|'? ruleElement)*;
6+
7+
let ruleElement = predicate?
8+
( string
9+
| identifier
10+
| range
11+
| nestedRules
12+
| any
13+
) quantifier?;
14+
15+
let nestedRules = "(" rules ")";
16+
17+
let quantifier = '*'
18+
| '?'
19+
| '+'
20+
| arbitraryQuantifier;
21+
22+
let annotation = '@' identifier;
23+
24+
let arbitraryQuantifier = '{' number (',' number)? '}';
25+
26+
let range = '['string '..'']';
27+
28+
let identifier = character+;
29+
30+
let string = ('"' | "'") (character | number | whitespace)* ('"' | "'");
31+
32+
@Literal let predicate = '!' ;
33+
@Literal let any = '.';
34+
35+
let character = ['A'..'z'] ;
36+
let number = ['0'..'9'];
37+
38+
@Ignored let linebreak = '\n' | '\r';
39+
@Ignored let whitespace = ' ' | '\t';
40+
41+
@Ignored let lineComment = '//' (character | number | whitespace)*;
42+
@Ignored let blockComment = '/*' (character | number | whitespace | linebreak)* '*/';

0 commit comments

Comments
 (0)