diff --git a/.gitpod.Dockerfile b/.gitpod.Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..528ee28e9ac7f8108db64260955c0ac2682f6af5
--- /dev/null
+++ b/.gitpod.Dockerfile
@@ -0,0 +1,3 @@
+FROM gitpod/workspace-dotnet
+
+RUN sudo apt-get update &&  sudo apt install -y nuget
diff --git a/.gitpod.yml b/.gitpod.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3f8fd673b4b9dc8cc1035192d1e3019ddac196a7
--- /dev/null
+++ b/.gitpod.yml
@@ -0,0 +1,12 @@
+image:
+  file: .gitpod.Dockerfile
+
+tasks:
+  - init: nuget restore Compilers.sln
+    command: echo "Nuget packages restored"
+
+vscode:
+  extensions:
+    - patcx.vscode-nuget-gallery@0.0.20:ogiC/AHEtkvJiOuDFESvdQ==
+    - jsw.csharpextensions@1.3.5:IAR0yr75KBtC7ZW0lqOD3w==
+    - genuitecllc.codetogether@2.0.0:V/RKT60bcDRMrXqiAcuNzQ==
diff --git a/.theia/tasks.json b/.theia/tasks.json
new file mode 100644
index 0000000000000000000000000000000000000000..9d166fedcd6a8abc05050a8f47edbab30f19d1b8
--- /dev/null
+++ b/.theia/tasks.json
@@ -0,0 +1,131 @@
+{  
+	// See https://go.microsoft.com/fwlink/?LinkId=733558
+	// for the documentation about the tasks.json format
+	"version": "2.0.0",
+	"tasks": [
+		{
+			"label": "build",
+			"type": "shell",
+			"command": "xbuild",
+			"args": [
+				// Ask msbuild to generate full paths for file names.
+				//"/property:GenerateFullPaths=true",
+				//"/t:build",
+				// Do not generate summary otherwise it leads to duplicate errors in Problems panel
+				//"/consoleloggerparameters:NoSummary",
+                "/p:TargetFrameworkVersion=\"v4.0\""
+			],
+			"group": "build",
+			"presentation": {
+				// Reveal the output only if unrecognized errors occur.
+				"reveal": "silent"
+			},
+			// Use the standard MS compiler pattern to detect errors, warnings and infos
+			"problemMatcher": "$msCompile"
+		},
+        {
+			"label": "test lexer",
+			"type": "shell",
+			"command": "mono",
+			"args": [
+				"packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe",
+                " --labels=All",
+                "TestLexer/bin/Debug/TestLexer.dll"
+			],
+			"group": "test",
+			// Use the standard MS compiler pattern to detect errors, warnings and infos
+			"problemMatcher": "$msCompile"
+		},
+        {
+			"label": "test simple lexer",
+			"type": "shell",
+			"command": "mono",
+			"args": [
+				"packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe",
+                " --labels=All",
+                "TestSimpleLexer/bin/Debug/TestSimpleLexer.dll"
+			],
+			"group": "test",
+			// Use the standard MS compiler pattern to detect errors, warnings and infos
+			"problemMatcher": "$msCompile"
+		},
+        {
+			"label": "test generated lexer",
+			"type": "shell",
+			"command": "mono",
+			"args": [
+				"packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe",
+                " --labels=All",
+                "TestGeneratedLexer/bin/Debug/TestGeneratedLexer.dll"
+			],
+			"group": "test",
+			// Use the standard MS compiler pattern to detect errors, warnings and infos
+			"problemMatcher": "$msCompile"
+		},
+        {
+			"label": "test descent parser",
+			"type": "shell",
+			"command": "mono",
+			"args": [
+				"packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe",
+                " --labels=All",
+                "TestDescentParser/bin/Debug/TestDescentParser.dll"
+			],
+			"group": "test",
+			// Use the standard MS compiler pattern to detect errors, warnings and infos
+			"problemMatcher": "$msCompile"
+		},
+        {
+			"label": "test generated parser",
+			"type": "shell",
+			"command": "mono",
+			"args": [
+				"packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe",
+                " --labels=All",
+                "TestGeneratedParser/bin/Debug/TestGeneratedParser.dll"
+			],
+			"group": "test",
+			// Use the standard MS compiler pattern to detect errors, warnings and infos
+			"problemMatcher": "$msCompile"
+		},
+        {
+			"label": "test ast parser",
+			"type": "shell",
+			"command": "mono",
+			"args": [
+				"packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe",
+                " --labels=All",
+                "TestASTParser/bin/Debug/TestASTParser.dll"
+			],
+			"group": "test",
+			// Use the standard MS compiler pattern to detect errors, warnings and infos
+			"problemMatcher": "$msCompile"
+		},
+        {
+			"label": "test visitors",
+			"type": "shell",
+			"command": "mono",
+			"args": [
+				"packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe",
+                " --labels=All",
+                "TestVisitors/bin/Debug/TestVisitors.dll"
+			],
+			"group": "test",
+			// Use the standard MS compiler pattern to detect errors, warnings and infos
+			"problemMatcher": "$msCompile"
+		},
+        {
+			"label": "test code generator",
+			"type": "shell",
+			"command": "mono",
+			"args": [
+				"packages/NUnit.ConsoleRunner.3.10.0/tools/nunit3-console.exe",
+                " --labels=All",
+                "TestCodeGenerator/bin/Debug/TestCodeGenerator.dll"
+			],
+			"group": "test",
+			// Use the standard MS compiler pattern to detect errors, warnings and infos
+			"problemMatcher": "$msCompile"
+		}
+	]
+}
\ No newline at end of file