Bug 572429: [R-Source] Add concept of R language version to R-Source
- Improve RTerminal and related unit tests
Change-Id: If2fd6df717f1741932d70d8662037090e241a10e
diff --git a/r/org.eclipse.statet.r.console.core/META-INF/MANIFEST.MF b/r/org.eclipse.statet.r.console.core/META-INF/MANIFEST.MF
index b09f523..0f3d0ca 100644
--- a/r/org.eclipse.statet.r.console.core/META-INF/MANIFEST.MF
+++ b/r/org.eclipse.statet.r.console.core/META-INF/MANIFEST.MF
@@ -29,7 +29,8 @@
org.eclipse.statet.jcommons.status.eplatform;version="4.4.0",
org.eclipse.statet.jcommons.text.core;version="4.4.0",
org.eclipse.statet.jcommons.text.core.input;version="4.4.0",
- org.eclipse.statet.jcommons.ts.core;version="4.4.0"
+ org.eclipse.statet.jcommons.ts.core;version="4.4.0",
+ org.eclipse.statet.jcommons.util;version="4.4.0"
Export-Package: org.eclipse.statet.r.console.core,
org.eclipse.statet.r.console.core.util,
org.eclipse.statet.r.launching.core,
diff --git a/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerNumericLiteralTest.java b/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerNumericLiteralTest.java
index 40f50f9..a273724 100644
--- a/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerNumericLiteralTest.java
+++ b/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerNumericLiteralTest.java
@@ -27,8 +27,6 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.text.core.input.StringParserInput;
-import org.eclipse.statet.r.core.rlang.RTerminal;
-
@NonNullByDefault
public class RLexerNumericLiteralTest {
diff --git a/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerStringLiteralTest.java b/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerStringLiteralTest.java
index d1a2061..26694af 100644
--- a/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerStringLiteralTest.java
+++ b/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerStringLiteralTest.java
@@ -35,8 +35,6 @@
import org.eclipse.statet.jcommons.text.core.BasicTextRegion;
import org.eclipse.statet.jcommons.text.core.input.StringParserInput;
-import org.eclipse.statet.r.core.rlang.RTerminal;
-
@NonNullByDefault
public class RLexerStringLiteralTest {
diff --git a/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerStringTextTest.java b/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerStringTextTest.java
index fe28b5f..56a9e4f 100644
--- a/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerStringTextTest.java
+++ b/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerStringTextTest.java
@@ -31,8 +31,6 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.text.core.input.StringParserInput;
-import org.eclipse.statet.r.core.rlang.RTerminal;
-
@NonNullByDefault
public class RLexerStringTextTest {
diff --git a/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerTest.java b/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerTest.java
index 4a11324..5daee80 100644
--- a/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerTest.java
+++ b/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/RLexerTest.java
@@ -23,8 +23,6 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.text.core.input.StringParserInput;
-import org.eclipse.statet.r.core.rlang.RTerminal;
-
@NonNullByDefault
public class RLexerTest {
@@ -48,6 +46,7 @@
lexer.reset(this.input.reset("").init());
assertEquals(RTerminal.EOF, lexer.next());
+ assertEquals(0, lexer.getOffset());
}
@Test
@@ -77,6 +76,20 @@
lexer.reset(this.input.reset(" \n ").init());
assertEquals(RTerminal.LINEBREAK, lexer.next());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(1, lexer.getLength());
+
+ assertEquals(RTerminal.EOF, lexer.next());
+ }
+
+ @Test
+ public void matchLinebreakWin() {
+ final RLexer lexer= new RLexer(getConfig() | RLexer.SKIP_WHITESPACE);
+ lexer.reset(this.input.reset(" \r\n ").init());
+
+ assertEquals(RTerminal.LINEBREAK, lexer.next());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(2, lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -88,6 +101,8 @@
assertEquals(RTerminal.COMMENT, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(2, lexer.getOffset());
+ assertEquals(9, lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -99,7 +114,11 @@
assertEquals(RTerminal.COMMENT, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(2, lexer.getOffset());
+ assertEquals(9, lexer.getLength());
assertEquals(RTerminal.LINEBREAK, lexer.next());
+ assertEquals(2 + 9, lexer.getOffset());
+ assertEquals(1, lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -107,10 +126,12 @@
@Test
public void matchRoxygenComment() {
final RLexer lexer= new RLexer(getConfig() | RLexer.SKIP_WHITESPACE);
- lexer.reset(this.input.reset("#' comment").init());
+ lexer.reset(this.input.reset(" #' comment").init());
assertEquals(RTerminal.ROXYGEN_COMMENT, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(10, lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -136,6 +157,8 @@
assertEquals(RTerminal.BLOCK_OPEN, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_BLOCK_OPEN.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -147,6 +170,8 @@
assertEquals(RTerminal.BLOCK_CLOSE, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_BLOCK_CLOSE.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -158,6 +183,8 @@
assertEquals(RTerminal.GROUP_OPEN, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_GROUP_OPEN.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -169,6 +196,8 @@
assertEquals(RTerminal.GROUP_CLOSE, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_GROUP_CLOSE.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -180,6 +209,8 @@
assertEquals(RTerminal.SUB_INDEXED_S_OPEN, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_SUB_INDEXED_OPEN.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -191,6 +222,8 @@
assertEquals(RTerminal.SUB_INDEXED_D_OPEN, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_SUB_INDEXED_D_OPEN.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -202,6 +235,8 @@
assertEquals(RTerminal.SUB_INDEXED_CLOSE, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_SUB_INDEXED_CLOSE.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -213,6 +248,8 @@
assertEquals(RTerminal.SUB_NAMED_PART, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_SUB_NAMED.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -224,6 +261,8 @@
assertEquals(RTerminal.SUB_NAMED_SLOT, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_SUB_AT.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -235,6 +274,8 @@
assertEquals(RTerminal.NS_GET, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_NS_GET.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -246,6 +287,8 @@
assertEquals(RTerminal.NS_GET_INT, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_NS_GET_INT.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -257,6 +300,8 @@
assertEquals(RTerminal.PLUS, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_PLUS.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -268,6 +313,8 @@
assertEquals(RTerminal.MINUS, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_MINUS.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -279,6 +326,8 @@
assertEquals(RTerminal.MULT, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_MULT.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -290,6 +339,8 @@
assertEquals(RTerminal.DIV, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_DIV.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -301,6 +352,8 @@
assertEquals(RTerminal.OR, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_OR.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -312,6 +365,8 @@
assertEquals(RTerminal.OR_D, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_OR_D.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -323,6 +378,8 @@
assertEquals(RTerminal.AND, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_AND.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -334,6 +391,8 @@
assertEquals(RTerminal.AND_D, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_AND_D.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -345,6 +404,8 @@
assertEquals(RTerminal.NOT, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_NOT.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -356,6 +417,8 @@
assertEquals(RTerminal.POWER, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_POWER.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -367,6 +430,8 @@
assertEquals(RTerminal.SEQ, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_COLON.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -378,6 +443,8 @@
assertEquals(RTerminal.SPECIAL, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(3, lexer.getLength());
assertEquals("/", lexer.getText());
assertEquals(RTerminal.EOF, lexer.next());
@@ -390,6 +457,8 @@
assertEquals(RTerminal.SPECIAL, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(2, lexer.getLength());
assertEquals("", lexer.getText());
assertEquals(RTerminal.EOF, lexer.next());
@@ -402,6 +471,8 @@
assertEquals(RTerminal.SPECIAL, lexer.next());
assertEquals(STATUS12_SYNTAX_TOKEN_NOT_CLOSED, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(3, lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
@@ -409,6 +480,8 @@
assertEquals(RTerminal.SPECIAL, lexer.next());
assertEquals(STATUS12_SYNTAX_TOKEN_NOT_CLOSED, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(3, lexer.getLength());
assertEquals(RTerminal.LINEBREAK, lexer.next());
}
@@ -420,6 +493,8 @@
assertEquals(RTerminal.QUESTIONMARK, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_QUESTIONMARK.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -431,17 +506,21 @@
assertEquals(RTerminal.COMMA, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_COMMA.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@Test
- public void matchSemi() {
+ public void matchSemicolon() {
final RLexer lexer= new RLexer(getConfig() | RLexer.SKIP_WHITESPACE);
lexer.reset(this.input.reset(" ; ").init());
- assertEquals(RTerminal.SEMI, lexer.next());
+ assertEquals(RTerminal.SEMICOLON, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_SEMICOLON.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -453,6 +532,8 @@
assertEquals(RTerminal.ARROW_LEFT_S, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_ARROW_LEFT.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -464,6 +545,8 @@
assertEquals(RTerminal.ARROW_LEFT_D, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_ARROW_LEFT_D.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -475,6 +558,8 @@
assertEquals(RTerminal.ARROW_RIGHT_S, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_ARROW_RIGHT.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -486,6 +571,8 @@
assertEquals(RTerminal.ARROW_RIGHT_D, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_ARROW_RIGHT_D.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -497,6 +584,8 @@
assertEquals(RTerminal.EQUAL, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_EQUAL.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -508,6 +597,8 @@
assertEquals(RTerminal.COLON_EQUAL, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(2, lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -530,6 +621,8 @@
assertEquals(RTerminal.TILDE, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_TILDE.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -541,6 +634,8 @@
assertEquals(RTerminal.REL_NE, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_REL_NE.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -552,6 +647,8 @@
assertEquals(RTerminal.REL_EQ, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_REL_EQ.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -563,6 +660,8 @@
assertEquals(RTerminal.REL_LT, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_REL_LT.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -574,6 +673,8 @@
assertEquals(RTerminal.REL_LE, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_REL_LE.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -585,6 +686,8 @@
assertEquals(RTerminal.REL_GT, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_REL_GT.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -596,6 +699,8 @@
assertEquals(RTerminal.REL_GE, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_REL_GE.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -608,6 +713,8 @@
assertEquals(RTerminal.IF, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_IF.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -619,6 +726,8 @@
assertEquals(RTerminal.ELSE, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_ELSE.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -630,6 +739,8 @@
assertEquals(RTerminal.FOR, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_FOR.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -641,6 +752,8 @@
assertEquals(RTerminal.IN, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_IN.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -652,6 +765,8 @@
assertEquals(RTerminal.WHILE, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_WHILE.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -663,6 +778,8 @@
assertEquals(RTerminal.REPEAT, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_REPEAT.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -674,6 +791,8 @@
assertEquals(RTerminal.NEXT, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_NEXT.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -685,6 +804,8 @@
assertEquals(RTerminal.BREAK, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_BREAK.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -696,6 +817,8 @@
assertEquals(RTerminal.FUNCTION, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_FUNCTION.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -707,6 +830,8 @@
assertEquals(RTerminal.TRUE, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_TRUE.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -718,6 +843,8 @@
assertEquals(RTerminal.FALSE, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_FALSE.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -729,6 +856,8 @@
assertEquals(RTerminal.NA, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_NA.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -740,6 +869,8 @@
assertEquals(RTerminal.NA_REAL, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_NA_REAL.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -751,6 +882,8 @@
assertEquals(RTerminal.NA_INT, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_NA_INT.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -762,6 +895,8 @@
assertEquals(RTerminal.NA_CPLX, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_NA_CPLX.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -773,6 +908,8 @@
assertEquals(RTerminal.NA_CHAR, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_NA_CHAR.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -784,6 +921,8 @@
assertEquals(RTerminal.NULL, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_NULL.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -795,6 +934,8 @@
assertEquals(RTerminal.NAN, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_NAN.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
@@ -806,6 +947,8 @@
assertEquals(RTerminal.INF, lexer.next());
assertEquals(0, lexer.getFlags());
+ assertEquals(1, lexer.getOffset());
+ assertEquals(RTerminal.S_INF.length(), lexer.getLength());
assertEquals(RTerminal.EOF, lexer.next());
}
diff --git a/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/ast/RParserBasicTest.java b/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/ast/RParserBasicTest.java
index 6e15378..462addb 100644
--- a/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/ast/RParserBasicTest.java
+++ b/r/org.eclipse.statet.r.core-tests/src/org/eclipse/statet/r/core/rsource/ast/RParserBasicTest.java
@@ -31,7 +31,7 @@
import org.eclipse.statet.jcommons.text.core.input.StringParserInput;
import org.eclipse.statet.ltk.model.core.ModelManager;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
@NonNullByDefault
diff --git a/r/org.eclipse.statet.r.core/META-INF/MANIFEST.MF b/r/org.eclipse.statet.r.core/META-INF/MANIFEST.MF
index 7ee24e6..529d8d3 100644
--- a/r/org.eclipse.statet.r.core/META-INF/MANIFEST.MF
+++ b/r/org.eclipse.statet.r.core/META-INF/MANIFEST.MF
@@ -45,6 +45,7 @@
org.eclipse.statet.jcommons.text.core.input;version="4.4.0",
org.eclipse.statet.jcommons.text.core.util;version="4.4.0",
org.eclipse.statet.jcommons.ts.core;version="4.4.0",
+ org.eclipse.statet.jcommons.util;version="4.4.0",
org.eclipse.statet.rj.rsetups;version="4.4.0"
Export-Package: org.eclipse.statet.internal.r.core.sourcemodel;x-friends:="org.eclipse.statet.r.console.core",
org.eclipse.statet.r.core,
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/SourceAnalyzer.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/SourceAnalyzer.java
index ba969eb..6fd12e3 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/SourceAnalyzer.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/SourceAnalyzer.java
@@ -57,8 +57,8 @@
import org.eclipse.statet.r.core.model.RSourceFrame;
import org.eclipse.statet.r.core.model.RSourceUnit;
import org.eclipse.statet.r.core.model.RSourceUnitModelInfo;
-import org.eclipse.statet.r.core.rlang.RTerminal;
import org.eclipse.statet.r.core.rsource.RSourceConstants;
+import org.eclipse.statet.r.core.rsource.RTerminal;
import org.eclipse.statet.r.core.rsource.ast.Arithmetic;
import org.eclipse.statet.r.core.rsource.ast.Assignment;
import org.eclipse.statet.r.core.rsource.ast.CForLoop;
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/SyntaxProblemReporter.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/SyntaxProblemReporter.java
index f1c3eb1..69b10e5 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/SyntaxProblemReporter.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/internal/r/core/sourcemodel/SyntaxProblemReporter.java
@@ -84,8 +84,8 @@
import org.eclipse.statet.r.core.data.RValueFormatter;
import org.eclipse.statet.r.core.model.RModel;
import org.eclipse.statet.r.core.model.RSourceUnit;
-import org.eclipse.statet.r.core.rlang.RTerminal;
import org.eclipse.statet.r.core.rsource.RSourceConstants;
+import org.eclipse.statet.r.core.rsource.RTerminal;
import org.eclipse.statet.r.core.rsource.ast.Arithmetic;
import org.eclipse.statet.r.core.rsource.ast.Assignment;
import org.eclipse.statet.r.core.rsource.ast.Block;
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/data/RValueValidator.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/data/RValueValidator.java
index fe57b69..e2c6434 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/data/RValueValidator.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/data/RValueValidator.java
@@ -16,9 +16,9 @@
import org.eclipse.statet.jcommons.text.core.input.StringParserInput;
-import org.eclipse.statet.r.core.rlang.RTerminal;
import org.eclipse.statet.r.core.rsource.RLexer;
import org.eclipse.statet.r.core.rsource.RSourceConstants;
+import org.eclipse.statet.r.core.rsource.RTerminal;
import org.eclipse.statet.rj.data.RCharacterStore;
import org.eclipse.statet.rj.data.RComplexStore;
import org.eclipse.statet.rj.data.RFactorStore;
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/model/RElementName.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/model/RElementName.java
index 97ccaf5..442b997 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/model/RElementName.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/model/RElementName.java
@@ -31,8 +31,8 @@
import org.eclipse.statet.ltk.core.ElementName;
import org.eclipse.statet.r.core.RSymbolComparator;
import org.eclipse.statet.r.core.data.RValueFormatter;
-import org.eclipse.statet.r.core.rlang.RTerminal;
import org.eclipse.statet.r.core.rsource.RLexer;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/ExtractTempRefactoring.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/ExtractTempRefactoring.java
index 04c4da8..4ed6810 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/ExtractTempRefactoring.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/ExtractTempRefactoring.java
@@ -60,6 +60,7 @@
import org.eclipse.statet.r.core.rsource.ast.RAsts;
import org.eclipse.statet.r.core.source.RHeuristicTokenScanner;
+
public class ExtractTempRefactoring extends Refactoring {
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/FunctionToS4MethodRefactoring.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/FunctionToS4MethodRefactoring.java
index d6e2355..666f839 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/FunctionToS4MethodRefactoring.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/FunctionToS4MethodRefactoring.java
@@ -61,13 +61,14 @@
import org.eclipse.statet.r.core.model.RModelManager;
import org.eclipse.statet.r.core.model.RSourceUnit;
import org.eclipse.statet.r.core.model.RSourceUnitModelInfo;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
import org.eclipse.statet.r.core.rsource.ast.FDef;
import org.eclipse.statet.r.core.rsource.ast.NodeType;
import org.eclipse.statet.r.core.rsource.ast.RAstNode;
import org.eclipse.statet.r.core.rsource.ast.RAsts;
import org.eclipse.statet.r.core.source.RHeuristicTokenScanner;
+
public class FunctionToS4MethodRefactoring extends Refactoring {
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/RRefactoringAdapter.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/RRefactoringAdapter.java
index 00b027f..89068dc 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/RRefactoringAdapter.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/RRefactoringAdapter.java
@@ -44,10 +44,10 @@
import org.eclipse.statet.r.core.RCoreAccess;
import org.eclipse.statet.r.core.model.RModel;
import org.eclipse.statet.r.core.model.RSourceUnit;
-import org.eclipse.statet.r.core.rlang.RTerminal;
import org.eclipse.statet.r.core.rsource.RLexer;
import org.eclipse.statet.r.core.rsource.RSourceConstants;
import org.eclipse.statet.r.core.rsource.RSourceIndenter;
+import org.eclipse.statet.r.core.rsource.RTerminal;
import org.eclipse.statet.r.core.rsource.ast.Assignment;
import org.eclipse.statet.r.core.rsource.ast.RAstNode;
import org.eclipse.statet.r.core.rsource.ast.RParser;
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/RenameInRegionRefactoring.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/RenameInRegionRefactoring.java
index 14df365..3d761b1 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/RenameInRegionRefactoring.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/RenameInRegionRefactoring.java
@@ -60,13 +60,14 @@
import org.eclipse.statet.r.core.model.RSourceFrame;
import org.eclipse.statet.r.core.model.RSourceUnit;
import org.eclipse.statet.r.core.model.RSourceUnitModelInfo;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
import org.eclipse.statet.r.core.rsource.ast.GenericVisitor;
import org.eclipse.statet.r.core.rsource.ast.NodeType;
import org.eclipse.statet.r.core.rsource.ast.RAstNode;
import org.eclipse.statet.r.core.rsource.ast.RAsts;
import org.eclipse.statet.r.core.source.RHeuristicTokenScanner;
+
public class RenameInRegionRefactoring extends Refactoring {
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/RenameInWorkspaceRefactoring.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/RenameInWorkspaceRefactoring.java
index 6589b1b..95d8c92 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/RenameInWorkspaceRefactoring.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/refactoring/RenameInWorkspaceRefactoring.java
@@ -59,7 +59,7 @@
import org.eclipse.statet.r.core.model.RSourceUnitModelInfo;
import org.eclipse.statet.r.core.model.RWorkspaceSourceUnit;
import org.eclipse.statet.r.core.refactoring.RElementSearchProcessor.Mode;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
import org.eclipse.statet.r.core.rsource.ast.NodeType;
import org.eclipse.statet.r.core.rsource.ast.RAstNode;
import org.eclipse.statet.r.core.rsource.ast.RAsts;
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rlang/RTokens.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rlang/RTokens.java
index 4ec109d..9addda6 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rlang/RTokens.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rlang/RTokens.java
@@ -18,6 +18,8 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.r.core.rsource.RTerminal;
+
/**
* Provides util-method for tokens of the R-language.
@@ -27,6 +29,7 @@
@NonNullByDefault
public final class RTokens {
+
public static final String[] CONSTANT_WORDS= new String[] {
RTerminal.S_NULL,
RTerminal.S_NA,
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RLexer.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RLexer.java
index 5b4133e..c8a7940 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RLexer.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RLexer.java
@@ -36,7 +36,6 @@
import org.eclipse.statet.jcommons.text.core.input.TextParserInput;
import org.eclipse.statet.ltk.ast.core.StatusDetail;
-import org.eclipse.statet.r.core.rlang.RTerminal;
@NonNullByDefault
@@ -460,7 +459,7 @@
found1(in, RTerminal.COMMA);
return;
case ';':
- found1(in, RTerminal.SEMI);
+ found1(in, RTerminal.SEMICOLON);
return;
case '$':
found1(in, RTerminal.SUB_NAMED_PART);
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RSourceConstants.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RSourceConstants.java
index d1d32c8..2fa9444 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RSourceConstants.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RSourceConstants.java
@@ -15,12 +15,17 @@
package org.eclipse.statet.r.core.rsource;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.util.Version;
@NonNullByDefault
public interface RSourceConstants {
+ Version LANG_VERSION_4_0= new Version(4, 0, 0);
+ Version LANG_VERSION_4_1= new Version(4, 1, 0);
+
+
int STATUS_MASK_1= 0x0_0000_FF00;
int STATUS_MASK_12= 0x0_000F_FFF0;
int STATUS_MASK_3= 0x0_0000_000F;
@@ -95,6 +100,13 @@
int STATUS12_SYNTAX_FDEF_ARGS_MISSING= STATUS1_SYNTAX_INCOMPLETE_FDEF | 0x10 | STATUSFLAG_REAL_ERROR;
int STATUS12_SYNTAX_FDEF_ARGS_NOT_CLOSED= STATUS1_SYNTAX_INCOMPLETE_FDEF | 0x20 | STATUSFLAG_REAL_ERROR;
+ /**
+ * Syntax not supported by current config.
+ */
+ int STATUS1_SYNTAX_INCOMPATIBLE= 0x1700;
+ int STATUS12_SYNTAX_UNSUPPORTED_IN_LANG_VERSION= STATUS1_SYNTAX_INCOMPATIBLE | 0x10 | STATUSFLAG_REAL_ERROR;
+ int STATUS12_SYNTAX_OPTIONAL_IN_LANG_VERSION= STATUS1_SYNTAX_INCOMPATIBLE | 0x20;
+
int STATUS3_IF= 0x1;
int STATUS3_ELSE= 0x2;
int STATUS3_FOR= 0x3;
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rlang/RTerminal.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RTerminal.java
similarity index 60%
rename from r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rlang/RTerminal.java
rename to r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RTerminal.java
index 86693e9..d8253e5 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rlang/RTerminal.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/RTerminal.java
@@ -12,99 +12,100 @@
# Stephan Wahlbrink <sw@wahlbrink.eu> - initial API and implementation
#=============================================================================*/
-package org.eclipse.statet.r.core.rlang;
+package org.eclipse.statet.r.core.rsource;
+
+import static org.eclipse.statet.r.core.rsource.RSourceConstants.LANG_VERSION_4_0;
import org.eclipse.statet.jcommons.lang.NonNull;
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
+import org.eclipse.statet.jcommons.util.Version;
@NonNullByDefault
public enum RTerminal {
EOF (""), //$NON-NLS-1$
- BLANK (" "), //$NON-NLS-1$
+ BLANK (RTerminal.S_WHITESPACE),
LINEBREAK ("\n"), //$NON-NLS-1$
- COMMENT ("#"), //$NON-NLS-1$
+ COMMENT (RTerminal.S_COMMENT),
ROXYGEN_COMMENT ("#'"), //$NON-NLS-1$
UNKNOWN (""), //$NON-NLS-1$
OTHER (""), //$NON-NLS-1$
- BLOCK_OPEN ("{"), //$NON-NLS-1$
- BLOCK_CLOSE ("}"), //$NON-NLS-1$
- GROUP_OPEN ("("), //$NON-NLS-1$
- GROUP_CLOSE (")"), //$NON-NLS-1$
+ BLOCK_OPEN (RTerminal.S_BLOCK_OPEN),
+ BLOCK_CLOSE (RTerminal.S_BLOCK_CLOSE),
+ GROUP_OPEN (RTerminal.S_GROUP_OPEN),
+ GROUP_CLOSE (RTerminal.S_GROUP_CLOSE),
- SUB_INDEXED_S_OPEN ("["), //$NON-NLS-1$
- SUB_INDEXED_D_OPEN ("[["), //$NON-NLS-1$
- SUB_INDEXED_CLOSE ("]"), //$NON-NLS-1$
- SUB_NAMED_PART ("$"), //$NON-NLS-1$
- SUB_NAMED_SLOT ("@"), //$NON-NLS-1$
+ SUB_INDEXED_S_OPEN (RTerminal.S_SUB_INDEXED_OPEN),
+ SUB_INDEXED_D_OPEN (RTerminal.S_SUB_INDEXED_D_OPEN),
+ SUB_INDEXED_CLOSE (RTerminal.S_SUB_INDEXED_CLOSE),
+ SUB_NAMED_PART (RTerminal.S_SUB_NAMED),
+ SUB_NAMED_SLOT (RTerminal.S_SUB_AT),
- NS_GET ("::"), //$NON-NLS-1$
- NS_GET_INT (":::"), //$NON-NLS-1$
+ NS_GET (RTerminal.S_NS_GET),
+ NS_GET_INT (RTerminal.S_NS_GET_INT),
- PLUS ("+"), //$NON-NLS-1$
- MINUS ("-"), //$NON-NLS-1$
- MULT ("*"), //$NON-NLS-1$
- DIV ("/"), //$NON-NLS-1$
- OR ("|"), //$NON-NLS-1$
- OR_D ("||"), //$NON-NLS-1$
- AND ("&"), //$NON-NLS-1$
- AND_D ("&&"), //$NON-NLS-1$
- NOT ("!"), //$NON-NLS-1$
- POWER ("^"), //$NON-NLS-1$
- SEQ (":"), //$NON-NLS-1$
- SPECIAL ("%"), //$NON-NLS-1$
+ PLUS (RTerminal.S_PLUS),
+ MINUS (RTerminal.S_MINUS),
+ MULT (RTerminal.S_MULT),
+ DIV (RTerminal.S_DIV),
+ OR (RTerminal.S_OR),
+ OR_D (RTerminal.S_OR_D),
+ AND (RTerminal.S_AND),
+ AND_D (RTerminal.S_AND_D),
+ NOT (RTerminal.S_NOT),
+ POWER (RTerminal.S_POWER),
+ SEQ (RTerminal.S_COLON),
+ SPECIAL (RTerminal.S_SPECIAL),
- QUESTIONMARK ("?"), //$NON-NLS-1$
- COMMA (","), //$NON-NLS-1$
- SEMI (";"), //$NON-NLS-1$
+ QUESTIONMARK (RTerminal.S_QUESTIONMARK),
+ COMMA (RTerminal.S_COMMA),
+ SEMICOLON (RTerminal.S_SEMICOLON),
- ARROW_LEFT_S ("<-"), //$NON-NLS-1$
- ARROW_LEFT_D ("<<-"), //$NON-NLS-1$
- ARROW_RIGHT_S ("->"), //$NON-NLS-1$
- ARROW_RIGHT_D ("->>"), //$NON-NLS-1$
- EQUAL ("="), //$NON-NLS-1$
- COLON_EQUAL (":="), //$NON-NLS-1$
- TILDE ("~"), //$NON-NLS-1$
- REL_NE ("!="), //$NON-NLS-1$
- REL_EQ ("=="), //$NON-NLS-1$
- REL_LT ("<"), //$NON-NLS-1$
- REL_LE ("<="), //$NON-NLS-1$
- REL_GT (">"), //$NON-NLS-1$
- REL_GE (">="), //$NON-NLS-1$
+ ARROW_LEFT_S (RTerminal.S_ARROW_LEFT),
+ ARROW_LEFT_D (RTerminal.S_ARROW_LEFT_D),
+ ARROW_RIGHT_S (RTerminal.S_ARROW_RIGHT),
+ ARROW_RIGHT_D (RTerminal.S_ARROW_RIGHT_D),
+ EQUAL (RTerminal.S_EQUAL),
+ COLON_EQUAL (":="),
+ TILDE (RTerminal.S_TILDE),
+ REL_NE (RTerminal.S_REL_NE),
+ REL_EQ (RTerminal.S_REL_EQ),
+ REL_LT (RTerminal.S_REL_LT),
+ REL_LE (RTerminal.S_REL_LE),
+ REL_GT (RTerminal.S_REL_GT),
+ REL_GE (RTerminal.S_REL_GE),
- IF ("if"), //$NON-NLS-1$
- ELSE ("else"), //$NON-NLS-1$
- FOR ("for"), //$NON-NLS-1$
- IN ("in"), //$NON-NLS-1$
- WHILE ("while"), //$NON-NLS-1$
- REPEAT ("repeat"), //$NON-NLS-1$
- NEXT ("next"), //$NON-NLS-1$
- BREAK ("break"), //$NON-NLS-1$
- FUNCTION ("function"), //$NON-NLS-1$
+ IF (RTerminal.S_IF),
+ ELSE (RTerminal.S_ELSE),
+ FOR (RTerminal.S_FOR),
+ IN (RTerminal.S_IN),
+ WHILE (RTerminal.S_WHILE),
+ REPEAT (RTerminal.S_REPEAT),
+ NEXT (RTerminal.S_NEXT),
+ BREAK (RTerminal.S_BREAK),
+ FUNCTION (RTerminal.S_FUNCTION),
SYMBOL (""), //$NON-NLS-1$
SYMBOL_G ("`"), //$NON-NLS-1$
NUM_INT (""), //$NON-NLS-1$
NUM_NUM (""), //$NON-NLS-1$
NUM_CPLX (""), //$NON-NLS-1$
- STRING_D ("\""), //$NON-NLS-1$
- STRING_S ("\'"), //$NON-NLS-1$
+ STRING_D (RTerminal.S_QUOT_D),
+ STRING_S (RTerminal.S_QUOT_S),
STRING_R ("r\"("), //$NON-NLS-1$
- NULL ("NULL"), //$NON-NLS-1$
- TRUE ("TRUE"), //$NON-NLS-1$
- FALSE ("FALSE"), //$NON-NLS-1$
- NA ("NA"), //$NON-NLS-1$
- NA_INT ("NA_integer_"), //$NON-NLS-1$
- NA_REAL ("NA_real_"), //$NON-NLS-1$
- NA_CPLX ("NA_complex_"), //$NON-NLS-1$
- NA_CHAR ("NA_character_"), //$NON-NLS-1$
- NAN ("NaN"), //$NON-NLS-1$
- INF ("Inf"), //$NON-NLS-1$
-
- ;
+ NULL (RTerminal.S_NULL),
+ TRUE (RTerminal.S_TRUE),
+ FALSE (RTerminal.S_FALSE),
+ NA (RTerminal.S_NA),
+ NA_INT (RTerminal.S_NA_INT),
+ NA_REAL (RTerminal.S_NA_REAL),
+ NA_CPLX (RTerminal.S_NA_CPLX),
+ NA_CHAR (RTerminal.S_NA_CHAR),
+ NAN (RTerminal.S_NAN),
+ INF (RTerminal.S_INF);
public static final String S_WHITESPACE= " "; //$NON-NLS-1$
@@ -117,7 +118,7 @@
public static final String S_BLOCK_CLOSE= "}"; //$NON-NLS-1$
public static final String S_GROUP_OPEN= "("; //$NON-NLS-1$
public static final String S_GROUP_CLOSE= ")"; //$NON-NLS-1$
- public static final String S_SUB_INDEXED_S_OPEN= "["; //$NON-NLS-1$
+ public static final String S_SUB_INDEXED_OPEN= "["; //$NON-NLS-1$
public static final String S_SUB_INDEXED_D_OPEN= "[["; //$NON-NLS-1$
public static final String S_SUB_INDEXED_CLOSE= "]"; //$NON-NLS-1$
public static final String S_SUB_NAMED= "$"; //$NON-NLS-1$
@@ -134,17 +135,17 @@
public static final String S_AND_D= "&&"; //$NON-NLS-1$
public static final String S_NOT= "!"; //$NON-NLS-1$
public static final String S_POWER= "^"; //$NON-NLS-1$
- public static final String S_SEQ= ":"; //$NON-NLS-1$
+ public static final String S_COLON= ":"; //$NON-NLS-1$
public static final String S_SPECIAL= "%"; //$NON-NLS-1$
- public static final String S_HELP= "?"; //$NON-NLS-1$
+ public static final String S_QUESTIONMARK= "?"; //$NON-NLS-1$
public static final String S_COMMA= ","; //$NON-NLS-1$
- public static final String S_SEMI= ";"; //$NON-NLS-1$
- public static final String S_ASSIGN_LEFT= "<-"; //$NON-NLS-1$
- public static final String S_ASSIGN_LEFT_D= "<<-"; //$NON-NLS-1$
- public static final String S_ASSIGN_RIGHT= "->"; //$NON-NLS-1$
- public static final String S_ASSIGN_RIGHT_D= "->>"; //$NON-NLS-1$
+ public static final String S_SEMICOLON= ";"; //$NON-NLS-1$
+ public static final String S_ARROW_LEFT= "<-"; //$NON-NLS-1$
+ public static final String S_ARROW_LEFT_D= "<<-"; //$NON-NLS-1$
+ public static final String S_ARROW_RIGHT= "->"; //$NON-NLS-1$
+ public static final String S_ARROW_RIGHT_D= "->>"; //$NON-NLS-1$
public static final String S_EQUAL= "="; //$NON-NLS-1$
- public static final String S_MODEL= "~"; //$NON-NLS-1$
+ public static final String S_TILDE= "~"; //$NON-NLS-1$
public static final String S_REL_NE= "!="; //$NON-NLS-1$
public static final String S_REL_EQ= "=="; //$NON-NLS-1$
public static final String S_REL_LT= "<"; //$NON-NLS-1$
@@ -161,8 +162,8 @@
public static final String S_BREAK= "break"; //$NON-NLS-1$
public static final String S_FUNCTION= "function"; //$NON-NLS-1$
public static final String S_ELLIPSIS= "..."; //$NON-NLS-1$
- public static final String S_STRING_S= "\'"; //$NON-NLS-1$
- public static final String S_STRING_D= "\""; //$NON-NLS-1$
+ public static final String S_QUOT_S= "\'"; //$NON-NLS-1$
+ public static final String S_QUOT_D= "\""; //$NON-NLS-1$
public static final String S_TRUE= "TRUE"; //$NON-NLS-1$
public static final String S_FALSE= "FALSE"; //$NON-NLS-1$
public static final String S_NA= "NA"; //$NON-NLS-1$
@@ -186,8 +187,21 @@
public final String text;
- RTerminal(final String text) {
+ private final Version minRLangVersion;
+
+
+ RTerminal(final String text, final Version minRLangVersion) {
this.text= text;
+ this.minRLangVersion= minRLangVersion;
+ }
+
+ RTerminal(final String text) {
+ this(text, LANG_VERSION_4_0);
+ }
+
+
+ public Version getMinRLangVersion() {
+ return this.minRLangVersion;
}
}
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Arithmetic.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Arithmetic.java
index b77c1ff..588afea 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Arithmetic.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Arithmetic.java
@@ -18,7 +18,7 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Assignment.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Assignment.java
index b70da40..1f3e5ce 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Assignment.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Assignment.java
@@ -18,7 +18,7 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Block.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Block.java
index 33ea490..839faf5 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Block.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Block.java
@@ -18,7 +18,7 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CForLoop.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CForLoop.java
index b23df08..b58224e 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CForLoop.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CForLoop.java
@@ -25,7 +25,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CIfElse.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CIfElse.java
index c4c890e..4bb2bfd 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CIfElse.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CIfElse.java
@@ -26,7 +26,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CLoopCommand.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CLoopCommand.java
index ebf9eac..f768586 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CLoopCommand.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CLoopCommand.java
@@ -21,7 +21,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CRepeatLoop.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CRepeatLoop.java
index bcd6b97..a6489f8 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CRepeatLoop.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CRepeatLoop.java
@@ -24,7 +24,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CWhileLoop.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CWhileLoop.java
index 82e4174..e9bb0c8 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CWhileLoop.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/CWhileLoop.java
@@ -25,7 +25,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Comment.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Comment.java
index 6670c1a..f1ad05a 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Comment.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Comment.java
@@ -21,7 +21,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
@NonNullByDefault
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/DocuComment.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/DocuComment.java
index 76873ab..d4d03c9 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/DocuComment.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/DocuComment.java
@@ -24,7 +24,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/DocuTag.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/DocuTag.java
index d742fcc..a7dfbf7 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/DocuTag.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/DocuTag.java
@@ -23,7 +23,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
@NonNullByDefault
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/DocuText.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/DocuText.java
index b76a0ba..03bfed1 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/DocuText.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/DocuText.java
@@ -22,7 +22,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
@NonNullByDefault
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Dummy.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Dummy.java
index 987cb7b..6b3b7f1 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Dummy.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Dummy.java
@@ -24,7 +24,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/FCall.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/FCall.java
index 8bed5f5..f1b238d 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/FCall.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/FCall.java
@@ -28,7 +28,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/FDef.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/FDef.java
index da909fe..e6d5c77 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/FDef.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/FDef.java
@@ -28,7 +28,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Group.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Group.java
index e540196..0614c1f 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Group.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Group.java
@@ -23,7 +23,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Help.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Help.java
index 4d0b9fa..0dca0bb 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Help.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Help.java
@@ -24,7 +24,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Logical.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Logical.java
index 0ee2763..35b6a7c 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Logical.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Logical.java
@@ -18,7 +18,7 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Model.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Model.java
index 9966e4f..50812f8 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Model.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Model.java
@@ -24,7 +24,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/NSGet.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/NSGet.java
index ecdc54f..2c31924 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/NSGet.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/NSGet.java
@@ -21,7 +21,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/NullConst.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/NullConst.java
index 1c3a65a..695ae99 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/NullConst.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/NullConst.java
@@ -21,7 +21,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/NumberConst.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/NumberConst.java
index 62410f0..0e69550 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/NumberConst.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/NumberConst.java
@@ -20,7 +20,7 @@
import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.jcommons.text.core.TextRegion;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Power.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Power.java
index ae3bd0e..e0257f8 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Power.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Power.java
@@ -18,7 +18,7 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/RAstNode.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/RAstNode.java
index 3c99200..107d17f 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/RAstNode.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/RAstNode.java
@@ -24,7 +24,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.impl.AbstractAstNode;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/RParser.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/RParser.java
index dc9251f..c34b523 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/RParser.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/RParser.java
@@ -18,8 +18,6 @@
import static org.eclipse.statet.ltk.ast.core.AstNode.NA_OFFSET;
import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS123_SYNTAX_SEQREL_UNEXPECTED;
-import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS12_SYNTAX_TOKEN_UNEXPECTED;
-import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS12_SYNTAX_TOKEN_UNKNOWN;
import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS12_SYNTAX_CC_NOT_CLOSED;
import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS12_SYNTAX_CONDITION_MISSING;
import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS12_SYNTAX_CONDITION_NOT_CLOSED;
@@ -35,6 +33,8 @@
import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS12_SYNTAX_OPERATOR_MISSING;
import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS12_SYNTAX_SUBINDEXED_NOT_CLOSED;
import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS12_SYNTAX_SYMBOL_MISSING;
+import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS12_SYNTAX_TOKEN_UNEXPECTED;
+import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS12_SYNTAX_TOKEN_UNKNOWN;
import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS3_FDEF;
import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS3_FOR;
import static org.eclipse.statet.r.core.rsource.RSourceConstants.STATUS3_IF;
@@ -55,13 +55,15 @@
import org.eclipse.statet.jcommons.string.BasicStringFactory;
import org.eclipse.statet.jcommons.string.StringFactory;
import org.eclipse.statet.jcommons.text.core.input.TextParserInput;
+import org.eclipse.statet.jcommons.util.Version;
import org.eclipse.statet.internal.r.core.RCorePlugin;
import org.eclipse.statet.ltk.ast.core.AstInfo;
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.StatusDetail;
-import org.eclipse.statet.r.core.rlang.RTerminal;
import org.eclipse.statet.r.core.rsource.RLexer;
+import org.eclipse.statet.r.core.rsource.RSourceConstants;
+import org.eclipse.statet.r.core.rsource.RTerminal;
import org.eclipse.statet.r.core.rsource.ast.RAstNode.Assoc;
@@ -145,12 +147,37 @@
}
- private final static RScannerPostExprVisitor POST_VISITOR= new RScannerPostExprVisitor();
+ private static final RScannerPostExprVisitor POST_VISITOR= new RScannerPostExprVisitor();
+
+
+ private static final Version DEFAULT_LANG_VERSION= RSourceConstants.LANG_VERSION_4_1;
+ private static final int LANG_VERSION_4_0= 0;
+ private static final int LANG_VERSION_4_1= 1;
+
+ private static int toRLangVersionInt(final Version version) {
+ if (version.compareTo(RSourceConstants.LANG_VERSION_4_1) >= 0) {
+ return LANG_VERSION_4_1;
+ }
+ return LANG_VERSION_4_0;
+ }
+
+ private static Version toRLangVersionObj(final int version) {
+ switch (version) {
+ case LANG_VERSION_4_0:
+ return RSourceConstants.LANG_VERSION_4_0;
+ case LANG_VERSION_4_1:
+ return RSourceConstants.LANG_VERSION_4_1;
+ default:
+ throw new IllegalArgumentException();
+ }
+ }
private final RLexer lexer;
private final int level;
+ private int rLangVersion;
+
private RTerminal nextType;
private boolean wasLinebreak;
@@ -162,23 +189,25 @@
private final StringFactory symbolTextFactory;
- public RParser(final int level) {
- this(level, (StringFactory)null);
+ public RParser(final Version rLangVersion,
+ final int level, final RLexer lexer, final StringFactory symbolTextFactory) {
+ this.level= level;
+ this.lexer= nonNullAssert(lexer);
+ setRLangVersion(rLangVersion);
+
+ this.createText= ((level & AstInfo.DEFAULT_LEVEL_MASK) > AstInfo.LEVEL_MINIMAL);
+ this.symbolTextFactory= (symbolTextFactory != null) ? symbolTextFactory : BasicStringFactory.INSTANCE;
}
public RParser(final int level, final StringFactory symbolTextFactory) {
- this(level, new RLexer((level == AstInfo.LEVEL_MINIMAL) ?
+ this(DEFAULT_LANG_VERSION, level, new RLexer((level == AstInfo.LEVEL_MINIMAL) ?
(RLexer.DEFAULT | LEXER_CONFIG | RLexer.ENABLE_QUICK_CHECK) :
(RLexer.DEFAULT | LEXER_CONFIG) ),
symbolTextFactory );
}
- public RParser(final int level, final RLexer lexer, final StringFactory symbolTextFactory) {
- this.level= level;
- this.lexer= nonNullAssert(lexer);
-
- this.createText= ((level & AstInfo.DEFAULT_LEVEL_MASK) > AstInfo.LEVEL_MINIMAL);
- this.symbolTextFactory= (symbolTextFactory != null) ? symbolTextFactory : BasicStringFactory.INSTANCE;
+ public RParser(final int level) {
+ this(level, (StringFactory)null);
}
@@ -192,6 +221,14 @@
}
}
+ public Version getRLangVersion() {
+ return toRLangVersionObj(this.rLangVersion);
+ }
+
+ public void setRLangVersion(final Version langVersion) {
+ this.rLangVersion= toRLangVersionInt(langVersion);
+ }
+
public int getAstLevel() {
return this.level;
}
@@ -335,7 +372,7 @@
}
switch (this.nextType) {
- case SEMI:
+ case SEMICOLON:
if (expr != null) {
node.setSeparator(this.lexer.getOffset());
consumeToken();
@@ -604,7 +641,7 @@
continue ITER_TOKEN;
case COMMA:
- case SEMI:
+ case SEMICOLON:
case SUB_INDEXED_CLOSE:
case BLOCK_CLOSE:
case GROUP_CLOSE:
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Relational.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Relational.java
index 2d64179..c8d0371 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Relational.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Relational.java
@@ -18,7 +18,7 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/RoxygenParser.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/RoxygenParser.java
index 89cf977..641a034 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/RoxygenParser.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/RoxygenParser.java
@@ -34,7 +34,7 @@
import org.eclipse.statet.internal.r.core.rd.RdRCodeParserInput;
import org.eclipse.statet.internal.r.core.sourcemodel.RoxygenTagType;
import org.eclipse.statet.ltk.ast.core.AstInfo;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
import org.eclipse.statet.r.core.rsource.ast.Symbol.G;
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Seq.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Seq.java
index 8716cc3..54e8fcf 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Seq.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Seq.java
@@ -18,7 +18,7 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Sign.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Sign.java
index 227a5ae..9beeb67 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Sign.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Sign.java
@@ -23,7 +23,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SourceComponent.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SourceComponent.java
index 21ab045..52b72f8 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SourceComponent.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SourceComponent.java
@@ -21,7 +21,7 @@
import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.ltk.ast.core.AstNode;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
@NonNullByDefault
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SpecItem.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SpecItem.java
index e171116..e6a0485 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SpecItem.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SpecItem.java
@@ -23,7 +23,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SpecList.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SpecList.java
index b6da997..6879a22 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SpecList.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SpecList.java
@@ -24,7 +24,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Special.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Special.java
index 792ca6e..4b4cfdf 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Special.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Special.java
@@ -20,7 +20,7 @@
import org.eclipse.statet.jcommons.lang.NonNullByDefault;
import org.eclipse.statet.jcommons.lang.Nullable;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
@NonNullByDefault
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/StringConst.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/StringConst.java
index af96aa2..7e9e4c8 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/StringConst.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/StringConst.java
@@ -20,7 +20,7 @@
import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.jcommons.text.core.TextRegion;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SubIndexed.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SubIndexed.java
index 28fe70b..c4c478b 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SubIndexed.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SubIndexed.java
@@ -26,7 +26,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SubNamed.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SubNamed.java
index d0dcf50..e80fb59 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SubNamed.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/SubNamed.java
@@ -23,7 +23,7 @@
import org.eclipse.statet.ltk.ast.core.AstNode;
import org.eclipse.statet.ltk.ast.core.AstVisitor;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Symbol.java b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Symbol.java
index 89ca667..d9c87f5 100644
--- a/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Symbol.java
+++ b/r/org.eclipse.statet.r.core/src/org/eclipse/statet/r/core/rsource/ast/Symbol.java
@@ -21,7 +21,7 @@
import org.eclipse.statet.jcommons.lang.Nullable;
import org.eclipse.statet.jcommons.text.core.TextRegion;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreferencePage.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreferencePage.java
index eb94ac2..906c4db 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreferencePage.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/internal/r/ui/preferences/RTextStylesPreferencePage.java
@@ -34,7 +34,7 @@
import org.eclipse.statet.ltk.ui.sourceediting.SourceEditorViewerConfiguration;
import org.eclipse.statet.ltk.ui.util.CombinedPreferenceStore;
import org.eclipse.statet.r.core.RCore;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
import org.eclipse.statet.r.core.source.RDocumentContentInfo;
import org.eclipse.statet.r.core.source.RDocumentSetupParticipant;
import org.eclipse.statet.r.ui.RUI;
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/templates/REditorContext.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/templates/REditorContext.java
index 93675c5..b20fee1 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/templates/REditorContext.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/editors/templates/REditorContext.java
@@ -39,9 +39,9 @@
import org.eclipse.statet.r.core.RCodeStyleSettings;
import org.eclipse.statet.r.core.RCore;
import org.eclipse.statet.r.core.RCoreAccess;
-import org.eclipse.statet.r.core.rlang.RTerminal;
import org.eclipse.statet.r.core.rlang.RTokens;
import org.eclipse.statet.r.core.rsource.RLexer;
+import org.eclipse.statet.r.core.rsource.RTerminal;
import org.eclipse.statet.r.ui.editors.RSourceEditor;
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/sourceediting/RPathCompletionComputer.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/sourceediting/RPathCompletionComputer.java
index f130fe9..503211a 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/sourceediting/RPathCompletionComputer.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/sourceediting/RPathCompletionComputer.java
@@ -51,8 +51,8 @@
import org.eclipse.statet.nico.ui.console.ConsolePageEditor;
import org.eclipse.statet.r.console.core.RProcess;
import org.eclipse.statet.r.core.RUtil;
-import org.eclipse.statet.r.core.rlang.RTerminal;
import org.eclipse.statet.r.core.rsource.RLexer;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/IRTextTokens.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/IRTextTokens.java
index 522fbb8..e653af1 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/IRTextTokens.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/IRTextTokens.java
@@ -14,7 +14,7 @@
package org.eclipse.statet.r.ui.text.r;
-import org.eclipse.statet.r.core.rlang.RTerminal;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**
@@ -75,7 +75,7 @@
};
public static final RTerminal[] SEPARATOR = new RTerminal[] {
RTerminal.COMMA,
- RTerminal.SEMI,
+ RTerminal.SEMICOLON,
};
public static final RTerminal[] NSGET = new RTerminal[] {
RTerminal.NS_GET,
diff --git a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RDefaultTextStyleScanner.java b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RDefaultTextStyleScanner.java
index 902b548..e3aeafa 100644
--- a/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RDefaultTextStyleScanner.java
+++ b/r/org.eclipse.statet.r.ui/src/org/eclipse/statet/r/ui/text/r/RDefaultTextStyleScanner.java
@@ -31,8 +31,8 @@
import org.eclipse.statet.internal.r.ui.RIdentifierGroups;
import org.eclipse.statet.internal.r.ui.RUIPlugin;
-import org.eclipse.statet.r.core.rlang.RTerminal;
import org.eclipse.statet.r.core.rsource.RLexer;
+import org.eclipse.statet.r.core.rsource.RTerminal;
/**