Skip to content

Commit f54e2cb

Browse files
authored
Merge pull request #4 from arlm/feature/TIS-100
Feature/tis 100
2 parents c81c7b9 + 3f05ff9 commit f54e2cb

30 files changed

+389
-168
lines changed

.gitignore

+41-40
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,41 @@
1-
# Autosave files
2-
*~
3-
4-
# build
5-
[Oo]bj/
6-
[Bb]in/
7-
packages/
8-
TestResults/
9-
10-
# globs
11-
Makefile.in
12-
*.DS_Store
13-
*.sln.cache
14-
*.suo
15-
*.cache
16-
*.pidb
17-
*.userprefs
18-
*.usertasks
19-
config.log
20-
config.make
21-
config.status
22-
aclocal.m4
23-
install-sh
24-
autom4te.cache/
25-
*.user
26-
*.tar.gz
27-
tarballs/
28-
test-results/
29-
Thumbs.db
30-
31-
# Mac bundle stuff
32-
*.dmg
33-
*.app
34-
35-
# resharper
36-
*_Resharper.*
37-
*.Resharper
38-
39-
# dotCover
40-
*.dotCover
1+
# Autosave files
2+
*~
3+
4+
# build
5+
[Oo]bj/
6+
[Bb]in/
7+
packages/
8+
TestResults/
9+
10+
# globs
11+
Makefile.in
12+
*.DS_Store
13+
*.sln.cache
14+
*.suo
15+
*.cache
16+
*.pidb
17+
*.userprefs
18+
*.usertasks
19+
config.log
20+
config.make
21+
config.status
22+
aclocal.m4
23+
install-sh
24+
autom4te.cache/
25+
*.user
26+
*.tar.gz
27+
tarballs/
28+
test-results/
29+
Thumbs.db
30+
31+
# Mac bundle stuff
32+
*.dmg
33+
*.app
34+
35+
# resharper
36+
*_Resharper.*
37+
*.Resharper
38+
39+
# dotCover
40+
*.dotCover
41+
.vs

Brainfuck-Test/Brainfuck-Test.csproj

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
</PropertyGroup>
99

1010
<ItemGroup>
11-
<PackageReference Include="NUnit" Version="3.8.1" />
12-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0" />
13-
<PackageReference Include="NUnit3TestAdapter" Version="3.8.0" />
14-
<PackageReference Include="sly" Version="1.0.4" />
11+
<PackageReference Include="NUnit" Version="3.11.0" />
12+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" />
13+
<PackageReference Include="NUnit3TestAdapter" Version="3.13.0" />
1514
</ItemGroup>
1615

1716
<ItemGroup>
1817
<ProjectReference Include="..\Brainfuck\Brainfuck.csproj" />
18+
<ProjectReference Include="..\csly\sly\sly.csproj" />
1919
</ItemGroup>
2020
</Project>

Brainfuck/Brainfuck.csproj

+5-3
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@
55
<TargetFramework>netcoreapp2.1</TargetFramework>
66
</PropertyGroup>
77
<ItemGroup>
8-
<PackageReference Include="Microsoft.CodeAnalysis.Compilers" Version="2.3.2" />
9-
<PackageReference Include="CommandLineParser" Version="1.9.71" />
10-
<PackageReference Include="sly" Version="1.0.4" />
8+
<PackageReference Include="Microsoft.CodeAnalysis.Compilers" Version="3.0.0" />
9+
<PackageReference Include="CommandLineParser" Version="2.5.0" />
1110
</ItemGroup>
1211
<ItemGroup>
1312
<Folder Include="Operators\" />
1413
<Folder Include="Runtime\" />
1514
</ItemGroup>
15+
<ItemGroup>
16+
<ProjectReference Include="..\csly\sly\sly.csproj" />
17+
</ItemGroup>
1618
</Project>

LanguagesSharp.sln

+44-17
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,27 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TIS100-Sharp", "TIS100-Shar
55
EndProject
66
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TIS100-Test", "TIS100-Test\TIS100-Test.csproj", "{201442F1-8843-418B-AFF1-73F7B559D926}"
77
EndProject
8-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "expressionParser", "csly\expressionParser\expressionParser.csproj", "{FFEF64A1-B45E-4CBC-9441-FFB0F90CDA53}"
8+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "expressionParser", "csly\samples\expressionParser\expressionParser.csproj", "{FFEF64A1-B45E-4CBC-9441-FFB0F90CDA53}"
99
EndProject
10-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "jsonparser", "csly\jsonparser\jsonparser.csproj", "{FB67B5A5-FBF4-4B5F-A760-5AFD67051489}"
10+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "jsonparser", "csly\samples\jsonparser\jsonparser.csproj", "{FB67B5A5-FBF4-4B5F-A760-5AFD67051489}"
1111
EndProject
1212
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "csly", "csly", "{A0F0ADC9-B3C4-4035-87FC-B0051E97627F}"
1313
EndProject
14-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ParserExample", "csly\ParserExample\ParserExample.csproj", "{D7B1F43C-4087-491A-A01B-32527DBEB4DD}"
14+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ParserExample", "csly\samples\ParserExample\ParserExample.csproj", "{D7B1F43C-4087-491A-A01B-32527DBEB4DD}"
1515
EndProject
1616
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ParserTests", "csly\ParserTests\ParserTests.csproj", "{281EFE79-3BB4-4296-8A7D-585AB463ED9D}"
1717
EndProject
1818
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "sly", "csly\sly\sly.csproj", "{B11B99D8-490F-4D11-865B-028DA906E632}"
1919
EndProject
20-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Brainfuck", "Brainfuck\Brainfuck.csproj", "{CDA4FB6B-7308-4D15-BC40-4ABF83BD39AD}"
20+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "while", "csly\samples\while\while.csproj", "{836EB670-F467-46F5-BFC0-68DB4D0A3824}"
2121
EndProject
22-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Brainfuck-Test", "Brainfuck-Test\Brainfuck-Test.csproj", "{630C70CB-F457-489A-A36A-A772BDA51C11}"
22+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleExpressionParser", "csly\samples\SimpleExpressionParser\SimpleExpressionParser.csproj", "{320A56FC-2F20-4BD0-AE7E-A4216D2C7841}"
23+
EndProject
24+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GenericLexerWithCallbacks", "csly\samples\GenericLexerWithCallbacks\GenericLexerWithCallbacks.csproj", "{3E959C07-871B-4DFA-A6D0-923BAB807443}"
25+
EndProject
26+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Brainfuck", "Brainfuck\Brainfuck.csproj", "{C33541EB-E15D-4A5E-829F-62370E19D9B9}"
27+
EndProject
28+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Brainfuck-Test", "Brainfuck-Test\Brainfuck-Test.csproj", "{24E180BA-69BC-4640-9931-9D276D17F915}"
2329
EndProject
2430
Global
2531
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -70,24 +76,45 @@ Global
7076
{B11B99D8-490F-4D11-865B-028DA906E632}.Release|Any CPU.Build.0 = Release|Any CPU
7177
{B11B99D8-490F-4D11-865B-028DA906E632}.Release|x86.ActiveCfg = Release|x86
7278
{B11B99D8-490F-4D11-865B-028DA906E632}.Release|x86.Build.0 = Release|x86
73-
{CDA4FB6B-7308-4D15-BC40-4ABF83BD39AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
74-
{CDA4FB6B-7308-4D15-BC40-4ABF83BD39AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
75-
{CDA4FB6B-7308-4D15-BC40-4ABF83BD39AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
76-
{CDA4FB6B-7308-4D15-BC40-4ABF83BD39AD}.Release|Any CPU.Build.0 = Release|Any CPU
77-
{CDA4FB6B-7308-4D15-BC40-4ABF83BD39AD}.Release|x86.ActiveCfg = Release|Any CPU
78-
{CDA4FB6B-7308-4D15-BC40-4ABF83BD39AD}.Release|x86.Build.0 = Release|Any CPU
79-
{630C70CB-F457-489A-A36A-A772BDA51C11}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
80-
{630C70CB-F457-489A-A36A-A772BDA51C11}.Debug|Any CPU.Build.0 = Debug|Any CPU
81-
{630C70CB-F457-489A-A36A-A772BDA51C11}.Release|Any CPU.ActiveCfg = Release|Any CPU
82-
{630C70CB-F457-489A-A36A-A772BDA51C11}.Release|Any CPU.Build.0 = Release|Any CPU
83-
{630C70CB-F457-489A-A36A-A772BDA51C11}.Release|x86.ActiveCfg = Release|Any CPU
84-
{630C70CB-F457-489A-A36A-A772BDA51C11}.Release|x86.Build.0 = Release|Any CPU
79+
{836EB670-F467-46F5-BFC0-68DB4D0A3824}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
80+
{836EB670-F467-46F5-BFC0-68DB4D0A3824}.Debug|Any CPU.Build.0 = Debug|Any CPU
81+
{836EB670-F467-46F5-BFC0-68DB4D0A3824}.Release|Any CPU.ActiveCfg = Release|Any CPU
82+
{836EB670-F467-46F5-BFC0-68DB4D0A3824}.Release|Any CPU.Build.0 = Release|Any CPU
83+
{836EB670-F467-46F5-BFC0-68DB4D0A3824}.Release|x86.ActiveCfg = Release|Any CPU
84+
{836EB670-F467-46F5-BFC0-68DB4D0A3824}.Release|x86.Build.0 = Release|Any CPU
85+
{320A56FC-2F20-4BD0-AE7E-A4216D2C7841}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
86+
{320A56FC-2F20-4BD0-AE7E-A4216D2C7841}.Debug|Any CPU.Build.0 = Debug|Any CPU
87+
{320A56FC-2F20-4BD0-AE7E-A4216D2C7841}.Release|Any CPU.ActiveCfg = Release|Any CPU
88+
{320A56FC-2F20-4BD0-AE7E-A4216D2C7841}.Release|Any CPU.Build.0 = Release|Any CPU
89+
{320A56FC-2F20-4BD0-AE7E-A4216D2C7841}.Release|x86.ActiveCfg = Release|Any CPU
90+
{320A56FC-2F20-4BD0-AE7E-A4216D2C7841}.Release|x86.Build.0 = Release|Any CPU
91+
{3E959C07-871B-4DFA-A6D0-923BAB807443}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
92+
{3E959C07-871B-4DFA-A6D0-923BAB807443}.Debug|Any CPU.Build.0 = Debug|Any CPU
93+
{3E959C07-871B-4DFA-A6D0-923BAB807443}.Release|Any CPU.ActiveCfg = Release|Any CPU
94+
{3E959C07-871B-4DFA-A6D0-923BAB807443}.Release|Any CPU.Build.0 = Release|Any CPU
95+
{3E959C07-871B-4DFA-A6D0-923BAB807443}.Release|x86.ActiveCfg = Release|Any CPU
96+
{3E959C07-871B-4DFA-A6D0-923BAB807443}.Release|x86.Build.0 = Release|Any CPU
97+
{C33541EB-E15D-4A5E-829F-62370E19D9B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
98+
{C33541EB-E15D-4A5E-829F-62370E19D9B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
99+
{C33541EB-E15D-4A5E-829F-62370E19D9B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
100+
{C33541EB-E15D-4A5E-829F-62370E19D9B9}.Release|Any CPU.Build.0 = Release|Any CPU
101+
{C33541EB-E15D-4A5E-829F-62370E19D9B9}.Release|x86.ActiveCfg = Release|Any CPU
102+
{C33541EB-E15D-4A5E-829F-62370E19D9B9}.Release|x86.Build.0 = Release|Any CPU
103+
{24E180BA-69BC-4640-9931-9D276D17F915}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
104+
{24E180BA-69BC-4640-9931-9D276D17F915}.Debug|Any CPU.Build.0 = Debug|Any CPU
105+
{24E180BA-69BC-4640-9931-9D276D17F915}.Release|Any CPU.ActiveCfg = Release|Any CPU
106+
{24E180BA-69BC-4640-9931-9D276D17F915}.Release|Any CPU.Build.0 = Release|Any CPU
107+
{24E180BA-69BC-4640-9931-9D276D17F915}.Release|x86.ActiveCfg = Release|Any CPU
108+
{24E180BA-69BC-4640-9931-9D276D17F915}.Release|x86.Build.0 = Release|Any CPU
85109
EndGlobalSection
86110
GlobalSection(NestedProjects) = preSolution
87111
{FFEF64A1-B45E-4CBC-9441-FFB0F90CDA53} = {A0F0ADC9-B3C4-4035-87FC-B0051E97627F}
88112
{FB67B5A5-FBF4-4B5F-A760-5AFD67051489} = {A0F0ADC9-B3C4-4035-87FC-B0051E97627F}
89113
{D7B1F43C-4087-491A-A01B-32527DBEB4DD} = {A0F0ADC9-B3C4-4035-87FC-B0051E97627F}
90114
{281EFE79-3BB4-4296-8A7D-585AB463ED9D} = {A0F0ADC9-B3C4-4035-87FC-B0051E97627F}
91115
{B11B99D8-490F-4D11-865B-028DA906E632} = {A0F0ADC9-B3C4-4035-87FC-B0051E97627F}
116+
{836EB670-F467-46F5-BFC0-68DB4D0A3824} = {A0F0ADC9-B3C4-4035-87FC-B0051E97627F}
117+
{320A56FC-2F20-4BD0-AE7E-A4216D2C7841} = {A0F0ADC9-B3C4-4035-87FC-B0051E97627F}
118+
{3E959C07-871B-4DFA-A6D0-923BAB807443} = {A0F0ADC9-B3C4-4035-87FC-B0051E97627F}
92119
EndGlobalSection
93120
EndGlobal

TIS100-Sharp/Operand.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System;
2-
namespace TIS100Sharp
1+
namespace TIS100Sharp
32
{
43
public abstract class Operand
54
{

TIS100-Sharp/Operands/Literal.cs

+5-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
1-
using System;
2-
namespace TIS100Sharp.Operands
1+
namespace TIS100Sharp.Operands
32
{
43
public class Literal : Operand
54
{
6-
public Literal()
5+
public int Value { get; private set; }
6+
7+
public Literal(int value)
78
{
9+
this.Value = value;
810
}
911
}
1012
}

TIS100-Sharp/Operands/Reference.cs

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
namespace TIS100Sharp.Operands
2+
{
3+
public class Reference : Operand
4+
{
5+
public string Name { get; private set; }
6+
7+
public Reference(string name)
8+
{
9+
this.Name = name;
10+
}
11+
}
12+
}

TIS100-Sharp/Operands/Source.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System;
2-
namespace TIS100Sharp.Operands
1+
namespace TIS100Sharp.Operands
32
{
43
public abstract class Source<T> : Operand
54
{

TIS100-Sharp/Operator.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System;
2-
namespace TIS100Sharp
1+
namespace TIS100Sharp
32
{
43
public abstract class Operator
54
{

TIS100-Sharp/Operators/Add.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System;
2-
namespace TIS100Sharp.Operators
1+
namespace TIS100Sharp.Operators
32
{
43
public class Add : Operator
54
{

TIS100-Sharp/Operators/Jump.cs

+1-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
1-
using System;
2-
using TIS100Sharp.Operands;
3-
4-
namespace TIS100Sharp.Operators
1+
namespace TIS100Sharp.Operators
52
{
63
public class Jump : Operator
74
{

TIS100-Sharp/Operators/Move.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System;
2-
namespace TIS100Sharp.Operators
1+
namespace TIS100Sharp.Operators
32
{
43
public class Move : Operator
54
{

TIS100-Sharp/Operators/Negate.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System;
2-
namespace TIS100Sharp.Operators
1+
namespace TIS100Sharp.Operators
32
{
43
public class Negate : Operator
54
{

TIS100-Sharp/Operators/Reference.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System;
2-
namespace TIS100Sharp.Operands
1+
namespace TIS100Sharp.Operators
32
{
43
public class Reference : Operator
54
{

TIS100-Sharp/Operators/Subtract.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System;
2-
namespace TIS100Sharp.Operators
1+
namespace TIS100Sharp.Operators
32
{
43
public class Subtract : Operator
54
{

TIS100-Sharp/Operators/Swap.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System;
2-
namespace TIS100Sharp.Operators
1+
namespace TIS100Sharp.Operators
32
{
43
public class Swap : Operator
54
{

TIS100-Sharp/Runtime/Module.cs

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace TIS100Sharp.Runtime
2+
{
3+
public abstract class Module
4+
{
5+
}
6+
}

TIS100-Sharp/Runtime/Modules/Test.cs

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace TIS100Sharp.Runtime.Modules
2+
{
3+
public class Test : Module
4+
{
5+
public Test()
6+
{
7+
}
8+
}
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
namespace TIS100Sharp.Runtime.Modules
2+
{
3+
public class Visualization : Module
4+
{
5+
public Visualization()
6+
{
7+
}
8+
}
9+
}

TIS100-Sharp/Runtime/Node.cs

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
namespace TIS100Sharp.Runtime
2+
{
3+
public abstract class Node
4+
{
5+
public Port UP { get; protected set; }
6+
public Port DOWN { get; protected set; }
7+
public Port LEFT { get; protected set; }
8+
public Port RIGHT { get; protected set; }
9+
10+
public void LinkUp(Node node) => this.UP = new Port(this, node);
11+
public void LinkDown(Node node) => this.DOWN = new Port(this, node);
12+
public void LinkLeft(Node node) => this.LEFT = new Port(this, node);
13+
public void LinkRight(Node node) => this.RIGHT = new Port(this, node);
14+
}
15+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
using System.Collections.Generic;
2+
3+
namespace TIS100Sharp.Runtime.Nodes
4+
{
5+
public class BasicExecution : Node
6+
{
7+
public int ACC { get; set; }
8+
public int BAK { get; internal set; }
9+
10+
private LinkedListNode<Operator> ExecutionPointer;
11+
12+
public LinkedList<Operator> Instructions { get; protected set; }
13+
14+
protected BasicExecution(IEnumerable<Operator> instructions)
15+
{
16+
this.Instructions = new LinkedList<Operator>(instructions);
17+
}
18+
}
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using System.Collections.Generic;
2+
3+
namespace TIS100Sharp.Runtime.Nodes
4+
{
5+
public class RandomAccessMemory : Node
6+
{
7+
public List<int> Data { get; private set; }
8+
9+
public RandomAccessMemory(int capacity)
10+
{
11+
this.Data = new List<int>(capacity);
12+
}
13+
}
14+
}

0 commit comments

Comments
 (0)