diff --git a/src/Libraries/NRefactory/NRefactory.sln b/src/Libraries/NRefactory/NRefactory.sln
index 77f861664d..db2c8524b9 100644
--- a/src/Libraries/NRefactory/NRefactory.sln
+++ b/src/Libraries/NRefactory/NRefactory.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
-# SharpDevelop 4.0.0.5897
+# SharpDevelop 4.0.0.5967
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactory", "Project\NRefactory.csproj", "{3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryTests", "Test\NRefactoryTests.csproj", "{870115DD-960A-4406-A6B9-600BCDC36A03}"
@@ -10,8 +10,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryASTGenerator", "N
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NRefactoryDemo", "..\..\..\samples\NRefactoryDemo\NRefactoryDemo.csproj", "{63199047-9D5D-474C-B3CC-62ABBB071B67}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VBParserExperiment", "Project\Src\Parser\VBNet\Experimental\Test\VBParserExperiment.csproj", "{A21BF46E-27BC-4DCA-AB11-462BE5B0B028}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -36,14 +34,6 @@ Global
{63199047-9D5D-474C-B3CC-62ABBB071B67}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{63199047-9D5D-474C-B3CC-62ABBB071B67}.Release|Any CPU.Build.0 = Release|Any CPU
{63199047-9D5D-474C-B3CC-62ABBB071B67}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A21BF46E-27BC-4DCA-AB11-462BE5B0B028}.Debug|Any CPU.Build.0 = Debug|x86
- {A21BF46E-27BC-4DCA-AB11-462BE5B0B028}.Debug|Any CPU.ActiveCfg = Debug|x86
- {A21BF46E-27BC-4DCA-AB11-462BE5B0B028}.Debug|x86.Build.0 = Debug|x86
- {A21BF46E-27BC-4DCA-AB11-462BE5B0B028}.Debug|x86.ActiveCfg = Debug|x86
- {A21BF46E-27BC-4DCA-AB11-462BE5B0B028}.Release|Any CPU.Build.0 = Release|x86
- {A21BF46E-27BC-4DCA-AB11-462BE5B0B028}.Release|Any CPU.ActiveCfg = Release|x86
- {A21BF46E-27BC-4DCA-AB11-462BE5B0B028}.Release|x86.Build.0 = Release|x86
- {A21BF46E-27BC-4DCA-AB11-462BE5B0B028}.Release|x86.ActiveCfg = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/Libraries/NRefactory/Project/NRefactory.csproj b/src/Libraries/NRefactory/Project/NRefactory.csproj
index 6595babc14..dc1953056e 100644
--- a/src/Libraries/NRefactory/Project/NRefactory.csproj
+++ b/src/Libraries/NRefactory/Project/NRefactory.csproj
@@ -60,9 +60,9 @@
-
-
-
+
+
+
ExpressionFinder.atg
@@ -143,20 +143,14 @@
-
-
+
CocoParserGenerator
- ICSharpCode.NRefactory.Parser.VBNet.Experimental
-
-
- ExpressionFinder.atg
-
-
- ExpressionFinder.atg
+ ICSharpCode.NRefactory.Parser.VB
-
+
ExpressionFinder.atg
+
@@ -174,7 +168,6 @@
ICSharpCode.NRefactory.Parser.VB
-
diff --git a/src/Libraries/NRefactory/Project/Src/Lexer/AbstractLexer.cs b/src/Libraries/NRefactory/Project/Src/Lexer/AbstractLexer.cs
index c2396d685d..4a138eabed 100644
--- a/src/Libraries/NRefactory/Project/Src/Lexer/AbstractLexer.cs
+++ b/src/Libraries/NRefactory/Project/Src/Lexer/AbstractLexer.cs
@@ -11,8 +11,6 @@ using System.Collections.Generic;
using System.IO;
using System.Text;
-using ICSharpCode.NRefactory.Parser.VBNet.Experimental;
-
namespace ICSharpCode.NRefactory.Parser
{
///
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/LATextReader.cs b/src/Libraries/NRefactory/Project/Src/Lexer/LATextReader.cs
similarity index 88%
rename from src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/LATextReader.cs
rename to src/Libraries/NRefactory/Project/Src/Lexer/LATextReader.cs
index 6c015fbdb1..c540cf6775 100644
--- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/LATextReader.cs
+++ b/src/Libraries/NRefactory/Project/Src/Lexer/LATextReader.cs
@@ -9,11 +9,8 @@ using System;
using System.Collections.Generic;
using System.IO;
-namespace ICSharpCode.NRefactory.Parser.VBNet.Experimental
+namespace ICSharpCode.NRefactory.Parser
{
- ///
- /// Description of LATextReader.
- ///
public class LATextReader : TextReader
{
List buffer;
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/ExpressionFinder.atg b/src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.atg
similarity index 100%
rename from src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/ExpressionFinder.atg
rename to src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.atg
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/ExpressionFinder.cs b/src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.cs
similarity index 97%
rename from src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/ExpressionFinder.cs
rename to src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.cs
index 049485f555..b1adc47490 100644
--- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/ExpressionFinder.cs
+++ b/src/Libraries/NRefactory/Project/Src/Lexer/VBNet/ExpressionFinder.cs
@@ -9,9 +9,8 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
-using ICSharpCode.NRefactory.Parser.VB;
-namespace ICSharpCode.NRefactory.Parser.VBNet.Experimental
+namespace ICSharpCode.NRefactory.Parser.VB
{
public partial class ExpressionFinder
{
diff --git a/src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Lexer.cs b/src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Lexer.cs
index a9f19f01d1..3239d88e0b 100644
--- a/src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Lexer.cs
+++ b/src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Lexer.cs
@@ -14,9 +14,6 @@ using System.Linq;
using System.Text;
using System.Xml;
-using ICSharpCode.NRefactory.Ast;
-using ICSharpCode.NRefactory.Parser.VBNet.Experimental;
-
namespace ICSharpCode.NRefactory.Parser.VB
{
internal sealed class Lexer : AbstractLexer
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Parser.cs b/src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Parser.cs
similarity index 99%
rename from src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Parser.cs
rename to src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Parser.cs
index 499442eb6a..e36f8b42a9 100644
--- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Parser.cs
+++ b/src/Libraries/NRefactory/Project/Src/Lexer/VBNet/Parser.cs
@@ -9,7 +9,7 @@ using ASTAttribute = ICSharpCode.NRefactory.Ast.Attribute;
-namespace ICSharpCode.NRefactory.Parser.VBNet.Experimental {
+namespace ICSharpCode.NRefactory.Parser.VB {
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/PushParser.frame b/src/Libraries/NRefactory/Project/Src/Lexer/VBNet/PushParser.frame
similarity index 100%
rename from src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/PushParser.frame
rename to src/Libraries/NRefactory/Project/Src/Lexer/VBNet/PushParser.frame
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Parser.frame b/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Parser.frame
deleted file mode 100644
index f81cc0367a..0000000000
--- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Parser.frame
+++ /dev/null
@@ -1,161 +0,0 @@
-/*----------------------------------------------------------------------
-Compiler Generator Coco/R,
-Copyright (c) 1990, 2004 Hanspeter Moessenboeck, University of Linz
-extended by M. Loeberbauer & A. Woess, Univ. of Linz
-with improvements by Pat Terry, Rhodes University
-
-This program is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-As an exception, it is allowed to write an extension of Coco/R that is
-used as a plugin in non-free software.
-
-If not otherwise stated, any source code generated by Coco/R (other than
-Coco/R itself) does not fall under the GNU General Public License.
-----------------------------------------------------------------------*/
--->begin
-using System;
-
--->namespace
-
-public partial class ExpressionFinder {
--->constants
- const bool T = true;
- const bool x = false;
- const int minErrDist = 2;
-
- public ILexer lexer;
- public Errors errors;
-
- public ExpressionFinder(ILexer lexer)
- {
- this.lexer = lexer;
- this.errors = new Errors();
- }
-
- public Token t; // last recognized token
- public Token la; // lookahead token
- int errDist = minErrDist;
-
--->declarations
-
- void SynErr (int n) {
- if (errDist >= minErrDist) errors.SynErr(la.line, la.col, n);
- errDist = 0;
- }
-
- public void SemErr (string msg) {
- if (errDist >= minErrDist) errors.SemErr(t.line, t.col, msg);
- errDist = 0;
- }
-
- void Get () {
- for (;;) {
- t = la;
- la = lexer.NextToken();
- if (la.kind <= maxT) { ++errDist; break; }
--->pragmas
- la = t;
- }
- }
-
- void Expect (int n) {
- if (la.kind==n) Get(); else { SynErr(n); }
- }
-
- bool StartOf (int s) {
- return set[s, la.kind];
- }
-
- void ExpectWeak (int n, int follow) {
- if (la.kind == n) Get();
- else {
- SynErr(n);
- while (!StartOf(follow)) Get();
- }
- }
-
-
- bool WeakSeparator(int n, int syFol, int repFol) {
- int kind = la.kind;
- if (kind == n) {Get(); return true;}
- else if (StartOf(repFol)) {return false;}
- else {
- SynErr(n);
- while (!(set[syFol, kind] || set[repFol, kind] || set[0, kind])) {
- Get();
- kind = la.kind;
- }
- return StartOf(syFol);
- }
- }
-
-
--->productions
-
- public void Parse() {
- PushContext(Context.Global);
- la = new Token(1, 1, 1);
- Get();
--->parseRoot
- Expect(0);
- PopContext();
- }
-
- static readonly bool[,] set = {
--->initialization
- };
-} // end Parser
-
-
-public class Errors {
- public int count = 0; // number of errors detected
- public System.IO.TextWriter errorStream = Console.Out; // error messages go to this stream
- public string errMsgFormat = "-- line {0} col {1}: {2}"; // 0=line, 1=column, 2=text
-
- public void SynErr (int line, int col, int n) {
- string s;
- switch (n) {
--->errors
- default: s = "error " + n; break;
- }
- errorStream.WriteLine(errMsgFormat, line, col, s);
- count++;
- }
-
- public void SemErr (int line, int col, string s) {
- errorStream.WriteLine(errMsgFormat, line, col, s);
- count++;
- }
-
- public void SemErr (string s) {
- errorStream.WriteLine(s);
- count++;
- }
-
- public void Warning (int line, int col, string s) {
- errorStream.WriteLine(errMsgFormat, line, col, s);
- }
-
- public void Warning(string s) {
- errorStream.WriteLine(s);
- }
-} // Errors
-
-
-public class FatalError: Exception {
- public FatalError(string m): base(m) {}
-}
-
-$$$
\ No newline at end of file
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Scanner.frame b/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Scanner.frame
deleted file mode 100644
index 3b37546e94..0000000000
--- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Scanner.frame
+++ /dev/null
@@ -1,363 +0,0 @@
-/*----------------------------------------------------------------------
-Compiler Generator Coco/R,
-Copyright (c) 1990, 2004 Hanspeter Moessenboeck, University of Linz
-extended by M. Loeberbauer & A. Woess, Univ. of Linz
-with improvements by Pat Terry, Rhodes University
-
-This program is free software; you can redistribute it and/or modify it
-under the terms of the GNU General Public License as published by the
-Free Software Foundation; either version 2, or (at your option) any
-later version.
-
-This program is distributed in the hope that it will be useful, but
-WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-As an exception, it is allowed to write an extension of Coco/R that is
-used as a plugin in non-free software.
-
-If not otherwise stated, any source code generated by Coco/R (other than
-Coco/R itself) does not fall under the GNU General Public License.
------------------------------------------------------------------------*/
--->begin
-using System;
-using System.IO;
-using System.Collections.Generic;
-
--->namespace
-
-public class Token {
- public int kind; // token kind
- public int pos; // token position in the source text (starting at 0)
- public int col; // token column (starting at 1)
- public int line; // token line (starting at 1)
- public string val; // token value
- public Token next; // ML 2005-03-11 Tokens are kept in linked list
-}
-
-//-----------------------------------------------------------------------------------
-// Buffer
-//-----------------------------------------------------------------------------------
-public class Buffer {
- // This Buffer supports the following cases:
- // 1) seekable stream (file)
- // a) whole stream in buffer
- // b) part of stream in buffer
- // 2) non seekable stream (network, console)
-
- public const int EOF = char.MaxValue + 1;
- const int MIN_BUFFER_LENGTH = 1024; // 1KB
- const int MAX_BUFFER_LENGTH = MIN_BUFFER_LENGTH * 64; // 64KB
- byte[] buf; // input buffer
- int bufStart; // position of first byte in buffer relative to input stream
- int bufLen; // length of buffer
- int fileLen; // length of input stream (may change if the stream is no file)
- int bufPos; // current position in buffer
- Stream stream; // input stream (seekable)
- bool isUserStream; // was the stream opened by the user?
-
- public Buffer (Stream s, bool isUserStream) {
- stream = s; this.isUserStream = isUserStream;
-
- if (stream.CanSeek) {
- fileLen = (int) stream.Length;
- bufLen = Math.Min(fileLen, MAX_BUFFER_LENGTH);
- bufStart = Int32.MaxValue; // nothing in the buffer so far
- } else {
- fileLen = bufLen = bufStart = 0;
- }
-
- buf = new byte[(bufLen>0) ? bufLen : MIN_BUFFER_LENGTH];
- if (fileLen > 0) Pos = 0; // setup buffer to position 0 (start)
- else bufPos = 0; // index 0 is already after the file, thus Pos = 0 is invalid
- if (bufLen == fileLen && stream.CanSeek) Close();
- }
-
- protected Buffer(Buffer b) { // called in UTF8Buffer constructor
- buf = b.buf;
- bufStart = b.bufStart;
- bufLen = b.bufLen;
- fileLen = b.fileLen;
- bufPos = b.bufPos;
- stream = b.stream;
- // keep destructor from closing the stream
- b.stream = null;
- isUserStream = b.isUserStream;
- }
-
- ~Buffer() { Close(); }
-
- protected void Close() {
- if (!isUserStream && stream != null) {
- stream.Close();
- stream = null;
- }
- }
-
- public virtual int Read () {
- if (bufPos < bufLen) {
- return buf[bufPos++];
- } else if (Pos < fileLen) {
- Pos = Pos; // shift buffer start to Pos
- return buf[bufPos++];
- } else if (stream != null && !stream.CanSeek && ReadNextStreamChunk() > 0) {
- return buf[bufPos++];
- } else {
- return EOF;
- }
- }
-
- public int Peek () {
- int curPos = Pos;
- int ch = Read();
- Pos = curPos;
- return ch;
- }
-
- public string GetString (int beg, int end) {
- int len = 0;
- char[] buf = new char[end - beg];
- int oldPos = Pos;
- Pos = beg;
- while (Pos < end) buf[len++] = (char) Read();
- Pos = oldPos;
- return new String(buf, 0, len);
- }
-
- public int Pos {
- get { return bufPos + bufStart; }
- set {
- if (value >= fileLen && stream != null && !stream.CanSeek) {
- // Wanted position is after buffer and the stream
- // is not seek-able e.g. network or console,
- // thus we have to read the stream manually till
- // the wanted position is in sight.
- while (value >= fileLen && ReadNextStreamChunk() > 0);
- }
-
- if (value < 0 || value > fileLen) {
- throw new FatalError("buffer out of bounds access, position: " + value);
- }
-
- if (value >= bufStart && value < bufStart + bufLen) { // already in buffer
- bufPos = value - bufStart;
- } else if (stream != null) { // must be swapped in
- stream.Seek(value, SeekOrigin.Begin);
- bufLen = stream.Read(buf, 0, buf.Length);
- bufStart = value; bufPos = 0;
- } else {
- // set the position to the end of the file, Pos will return fileLen.
- bufPos = fileLen - bufStart;
- }
- }
- }
-
- // Read the next chunk of bytes from the stream, increases the buffer
- // if needed and updates the fields fileLen and bufLen.
- // Returns the number of bytes read.
- private int ReadNextStreamChunk() {
- int free = buf.Length - bufLen;
- if (free == 0) {
- // in the case of a growing input stream
- // we can neither seek in the stream, nor can we
- // foresee the maximum length, thus we must adapt
- // the buffer size on demand.
- byte[] newBuf = new byte[bufLen * 2];
- Array.Copy(buf, newBuf, bufLen);
- buf = newBuf;
- free = bufLen;
- }
- int read = stream.Read(buf, bufLen, free);
- if (read > 0) {
- fileLen = bufLen = (bufLen + read);
- return read;
- }
- // end of stream reached
- return 0;
- }
-}
-
-//-----------------------------------------------------------------------------------
-// UTF8Buffer
-//-----------------------------------------------------------------------------------
-public class UTF8Buffer: Buffer {
- public UTF8Buffer(Buffer b): base(b) {}
-
- public override int Read() {
- int ch;
- do {
- ch = base.Read();
- // until we find a utf8 start (0xxxxxxx or 11xxxxxx)
- } while ((ch >= 128) && ((ch & 0xC0) != 0xC0) && (ch != EOF));
- if (ch < 128 || ch == EOF) {
- // nothing to do, first 127 chars are the same in ascii and utf8
- // 0xxxxxxx or end of file character
- } else if ((ch & 0xF0) == 0xF0) {
- // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
- int c1 = ch & 0x07; ch = base.Read();
- int c2 = ch & 0x3F; ch = base.Read();
- int c3 = ch & 0x3F; ch = base.Read();
- int c4 = ch & 0x3F;
- ch = (((((c1 << 6) | c2) << 6) | c3) << 6) | c4;
- } else if ((ch & 0xE0) == 0xE0) {
- // 1110xxxx 10xxxxxx 10xxxxxx
- int c1 = ch & 0x0F; ch = base.Read();
- int c2 = ch & 0x3F; ch = base.Read();
- int c3 = ch & 0x3F;
- ch = (((c1 << 6) | c2) << 6) | c3;
- } else if ((ch & 0xC0) == 0xC0) {
- // 110xxxxx 10xxxxxx
- int c1 = ch & 0x1F; ch = base.Read();
- int c2 = ch & 0x3F;
- ch = (c1 << 6) | c2;
- }
- return ch;
- }
-}
-
-//-----------------------------------------------------------------------------------
-// Scanner
-//-----------------------------------------------------------------------------------
-public class Scanner {
- const char EOL = '\n';
- const int eofSym = 0; /* pdt */
--->declarations
-
- public Buffer buffer; // scanner buffer
-
- Token t; // current token
- int ch; // current input character
- int pos; // byte position of current character
- int col; // column number of current character
- int line; // line number of current character
- int oldEols; // EOLs that appeared in a comment;
- static readonly Dictionary start; // maps first token character to start state
-
- Token tokens; // list of tokens already peeked (first token is a dummy)
- Token pt; // current peek token
-
- char[] tval = new char[128]; // text of current token
- int tlen; // length of current token
-
- static Scanner() {
- start = new Dictionary(128);
--->initialization
- }
-
- public Scanner (string fileName) {
- try {
- Stream stream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);
- buffer = new Buffer(stream, false);
- Init();
- } catch (IOException) {
- throw new FatalError("Cannot open file " + fileName);
- }
- }
-
- public Scanner (Stream s) {
- buffer = new Buffer(s, true);
- Init();
- }
-
- void Init() {
- pos = -1; line = 1; col = 0;
- oldEols = 0;
- NextCh();
- if (ch == 0xEF) { // check optional byte order mark for UTF-8
- NextCh(); int ch1 = ch;
- NextCh(); int ch2 = ch;
- if (ch1 != 0xBB || ch2 != 0xBF) {
- throw new FatalError(String.Format("illegal byte order mark: EF {0,2:X} {1,2:X}", ch1, ch2));
- }
- buffer = new UTF8Buffer(buffer); col = 0;
- NextCh();
- }
- pt = tokens = new Token(); // first token is a dummy
- }
-
- void NextCh() {
- if (oldEols > 0) { ch = EOL; oldEols--; }
- else {
- pos = buffer.Pos;
- ch = buffer.Read(); col++;
- // replace isolated '\r' by '\n' in order to make
- // eol handling uniform across Windows, Unix and Mac
- if (ch == '\r' && buffer.Peek() != '\n') ch = EOL;
- if (ch == EOL) { line++; col = 0; }
- }
--->casing1
- }
-
- void AddCh() {
- if (tlen >= tval.Length) {
- char[] newBuf = new char[2 * tval.Length];
- Array.Copy(tval, 0, newBuf, 0, tval.Length);
- tval = newBuf;
- }
- if (ch != Buffer.EOF) {
--->casing2
- NextCh();
- }
- }
-
-
--->comments
-
- void CheckLiteral() {
--->literals
- }
-
- Token NextToken() {
- while (ch == ' ' ||
--->scan1
- ) NextCh();
--->scan2
- t = new Token();
- t.pos = pos; t.col = col; t.line = line;
- int state;
- if (!start.TryGetValue(ch, out state))
- state = 0;
- tlen = 0; AddCh();
-
- switch (state) {
- case -1: { t.kind = eofSym; break; } // NextCh already done
- case 0: { t.kind = noSym; break; } // NextCh already done
--->scan3
- }
- t.val = new String(tval, 0, tlen);
- return t;
- }
-
- // get the next token (possibly a token already seen during peeking)
- public Token Scan () {
- if (tokens.next == null) {
- return NextToken();
- } else {
- pt = tokens = tokens.next;
- return tokens;
- }
- }
-
- // peek for the next token, ignore pragmas
- public Token Peek () {
- do {
- if (pt.next == null) {
- pt.next = NextToken();
- }
- pt = pt.next;
- } while (pt.kind > maxT); // skip pragmas
-
- return pt;
- }
-
- // make sure that peeking starts at the current scan position
- public void ResetPeek () { pt = tokens; }
-
-} // end Scanner
-
-$$$
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/Program.cs b/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/Program.cs
deleted file mode 100644
index 26c543b36b..0000000000
--- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/Program.cs
+++ /dev/null
@@ -1,40 +0,0 @@
-//
-//
-//
-//
-// $Revision$
-//
-
-using System;
-using System.IO;
-using ICSharpCode.NRefactory;
-using ICSharpCode.NRefactory.Parser;
-using VB = ICSharpCode.NRefactory.Parser.VB;
-using ICSharpCode.NRefactory.Parser.VBNet.Experimental;
-
-namespace VBParserExperiment
-{
- class Program
- {
- static string data = @"Class Test
- Public Sub New()
- Dim x =
- End Sub
-End Class
- ";
-
- public static void Main(string[] args)
- {
- ILexer lexer = ParserFactory.CreateLexer(SupportedLanguage.VBNet, new StringReader(data));
- ExpressionFinder p = new ExpressionFinder();
-
- Token t;
- do {
- t = lexer.NextToken();
- p.InformToken(t);
- } while (t.Kind != VB.Tokens.EOF);
-
- Console.ReadKey(true);
- }
- }
-}
\ No newline at end of file
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/Properties/AssemblyInfo.cs b/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/Properties/AssemblyInfo.cs
deleted file mode 100644
index fbf342d55e..0000000000
--- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,31 +0,0 @@
-#region Using directives
-
-using System;
-using System.Reflection;
-using System.Runtime.InteropServices;
-
-#endregion
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("VBParserExperiment")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("VBParserExperiment")]
-[assembly: AssemblyCopyright("Copyright 2010")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// This sets the default COM visibility of types in the assembly to invisible.
-// If you need to expose a type to COM, use [ComVisible(true)] on that type.
-[assembly: ComVisible(false)]
-
-// The assembly version has following format :
-//
-// Major.Minor.Build.Revision
-//
-// You can specify all the values or you can use the default the Revision and
-// Build Numbers by using the '*' as shown below:
-[assembly: AssemblyVersion("1.0.*")]
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/VBParserExperiment.csproj b/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/VBParserExperiment.csproj
deleted file mode 100644
index 560eb14d07..0000000000
--- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/VBParserExperiment.csproj
+++ /dev/null
@@ -1,65 +0,0 @@
-
-
-
- {A21BF46E-27BC-4DCA-AB11-462BE5B0B028}
- Debug
- x86
- Exe
- VBParserExperiment
- VBParserExperiment
- v4.0
- Properties
-
-
- x86
-
-
- bin\Debug\
- True
- Full
- False
- True
- DEBUG;TRACE
-
-
- bin\Release\
- False
- None
- True
- False
- TRACE
-
-
-
- ..\..\..\..\..\..\..\..\Tools\NUnit\nunit.framework.dll
-
-
-
- 3.5
-
-
-
- 3.5
-
-
-
- 3.5
-
-
-
-
-
-
-
-
-
-
-
-
-
- {3A9AE6AA-BC07-4A2F-972C-581E3AE2F195}
- NRefactory
-
-
-
-
\ No newline at end of file
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/LATextReaderTests.cs b/src/Libraries/NRefactory/Test/Lexer/LATextReaderTests.cs
similarity index 91%
rename from src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/LATextReaderTests.cs
rename to src/Libraries/NRefactory/Test/Lexer/LATextReaderTests.cs
index 5468e34f3f..c6f5c0ff48 100644
--- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/LATextReaderTests.cs
+++ b/src/Libraries/NRefactory/Test/Lexer/LATextReaderTests.cs
@@ -8,10 +8,10 @@
using System;
using System.IO;
-using ICSharpCode.NRefactory.Parser.VBNet.Experimental;
+using ICSharpCode.NRefactory.Parser;
using NUnit.Framework;
-namespace VBParserExperiment
+namespace ICSharpCode.NRefactory.Tests.Lexer
{
[TestFixture]
public class LATextReaderTests
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/ImplicitLineContinuationTests.cs b/src/Libraries/NRefactory/Test/Lexer/VBNet/ImplicitLineContinuationTests.cs
similarity index 98%
rename from src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/ImplicitLineContinuationTests.cs
rename to src/Libraries/NRefactory/Test/Lexer/VBNet/ImplicitLineContinuationTests.cs
index 032b10ca90..34381eed63 100644
--- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/ImplicitLineContinuationTests.cs
+++ b/src/Libraries/NRefactory/Test/Lexer/VBNet/ImplicitLineContinuationTests.cs
@@ -12,7 +12,7 @@ using ICSharpCode.NRefactory.Parser;
using ICSharpCode.NRefactory.Parser.VB;
using NUnit.Framework;
-namespace VBParserExperiment
+namespace ICSharpCode.NRefactory.Tests.Lexer.VB
{
[TestFixture]
public class ImplicitLineContinuationTests
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/ParserTests.cs b/src/Libraries/NRefactory/Test/Lexer/VBNet/LexerContextTests.cs
similarity index 95%
rename from src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/ParserTests.cs
rename to src/Libraries/NRefactory/Test/Lexer/VBNet/LexerContextTests.cs
index b19322339f..eb792b409b 100644
--- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/ParserTests.cs
+++ b/src/Libraries/NRefactory/Test/Lexer/VBNet/LexerContextTests.cs
@@ -7,16 +7,15 @@
using System;
using System.IO;
-using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.Parser;
-using VB = ICSharpCode.NRefactory.Parser.VB;
-using ICSharpCode.NRefactory.Parser.VBNet.Experimental;
+using ICSharpCode.NRefactory.Parser.VB;
using NUnit.Framework;
+using VBParser = ICSharpCode.NRefactory.Parser.VB;
-namespace VBParserExperiment
+namespace ICSharpCode.NRefactory.Tests.Lexer.VB
{
[TestFixture]
- public class ParserTests
+ public class LexerContextTests
{
[Test]
public void SimpleGlobal()
@@ -299,7 +298,7 @@ exit Global
do {
t = lexer.NextToken();
p.InformToken(t);
- } while (t.Kind != VB.Tokens.EOF);
+ } while (t.Kind != VBParser.Tokens.EOF);
Console.WriteLine(p.Output);
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/TokenTests.cs b/src/Libraries/NRefactory/Test/Lexer/VBNet/TokenTests.cs
similarity index 91%
rename from src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/TokenTests.cs
rename to src/Libraries/NRefactory/Test/Lexer/VBNet/TokenTests.cs
index 66aa3a5ecb..60111ca108 100644
--- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/TokenTests.cs
+++ b/src/Libraries/NRefactory/Test/Lexer/VBNet/TokenTests.cs
@@ -10,7 +10,7 @@ using System;
using ICSharpCode.NRefactory.Parser;
using NUnit.Framework;
-namespace VBParserExperiment
+namespace ICSharpCode.NRefactory.Tests.Lexer.VB
{
[TestFixture]
public class TokenTests
diff --git a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/XmlModeLexerTests.cs b/src/Libraries/NRefactory/Test/Lexer/VBNet/XmlModeLexerTests.cs
similarity index 99%
rename from src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/XmlModeLexerTests.cs
rename to src/Libraries/NRefactory/Test/Lexer/VBNet/XmlModeLexerTests.cs
index a87f8c779b..1f9cf689ae 100644
--- a/src/Libraries/NRefactory/Project/Src/Parser/VBNet/Experimental/Test/XmlModeLexerTests.cs
+++ b/src/Libraries/NRefactory/Test/Lexer/VBNet/XmlModeLexerTests.cs
@@ -13,7 +13,7 @@ using ICSharpCode.NRefactory.Parser;
using ICSharpCode.NRefactory.Parser.VB;
using NUnit.Framework;
-namespace VBParserExperiment
+namespace ICSharpCode.NRefactory.Tests.Lexer.VB
{
[TestFixture]
public class XmlModeLexerTests
diff --git a/src/Libraries/NRefactory/Test/NRefactoryTests.csproj b/src/Libraries/NRefactory/Test/NRefactoryTests.csproj
index e9de93aed8..90cc70c1f9 100644
--- a/src/Libraries/NRefactory/Test/NRefactoryTests.csproj
+++ b/src/Libraries/NRefactory/Test/NRefactoryTests.csproj
@@ -58,7 +58,12 @@
+
+
+
+
+
@@ -150,7 +155,9 @@
-
+
+ LexerTests.cs
+