Skip to content

Commit aed174f

Browse files
authored
Merge pull request #14 from JoshuaRadin37/develop
Develop
2 parents 008ac07 + a754a44 commit aed174f

File tree

518 files changed

+2893
-2726
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

518 files changed

+2893
-2726
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,5 @@ runtime.jdn
3333
*.tast
3434

3535
# Gradle
36-
.gradle
36+
.gradle
37+
/target/

.idea/compiler.xml

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/gradle.xml

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/jarRepositories.xml

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 0 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/Interpreter_Speed_Test.xml

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/JodinGradleMove__build_.xml

Lines changed: 21 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/runConfigurations/Toolchain_Runner.xml

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

BackEnd/build/tmp/jar/MANIFEST.MF

Lines changed: 0 additions & 2 deletions
This file was deleted.

BackEnd/src/radin/core/output/backend/compilation/AbstractCompiler.java renamed to BackEnd/src/radin/backend/compilation/AbstractCompiler.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
package radin.core.output.backend.compilation;
1+
package radin.backend.compilation;
22

33
import radin.core.chaining.ICompilerFunction;
44
import radin.core.errorhandling.AbstractCompilationError;
5-
import radin.core.output.midanalysis.TypeAugmentedSemanticNode;
5+
import radin.midanalysis.TypeAugmentedSemanticNode;
66
import radin.core.lexical.Token;
7-
import radin.core.utility.ICompilationSettings;
87

98
import java.io.PrintWriter;
109
import java.io.StringWriter;

BackEnd/src/radin/core/output/backend/compilation/AbstractIndentedOutputCompiler.java renamed to BackEnd/src/radin/backend/compilation/AbstractIndentedOutputCompiler.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package radin.core.output.backend.compilation;
1+
package radin.backend.compilation;
22

3-
import radin.core.output.backend.microcompilers.IndentPrintWriter;
3+
import radin.backend.microcompilers.IndentPrintWriter;
44
import radin.core.utility.UniversalCompilerSettings;
55

66
import java.io.PrintWriter;
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package radin.core.output.backend.compilation;
1+
package radin.backend.compilation;
22

33

44

5-
import radin.core.output.midanalysis.TypeAugmentedSemanticNode;
5+
import radin.midanalysis.TypeAugmentedSemanticNode;
66

77
import java.io.PrintWriter;
88

BackEnd/src/radin/core/output/backend/compilation/FileCompiler.java renamed to BackEnd/src/radin/backend/compilation/FileCompiler.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
package radin.core.output.backend.compilation;
1+
package radin.backend.compilation;
22

3-
import radin.core.output.backend.microcompilers.TopLevelDeclarationCompiler;
4-
import radin.core.output.midanalysis.TypeAugmentedSemanticNode;
3+
import radin.backend.microcompilers.TopLevelDeclarationCompiler;
4+
import radin.midanalysis.TypeAugmentedSemanticNode;
55
import radin.core.utility.ICompilationSettings;
66

77
import java.io.File;

BackEnd/src/radin/core/output/backend/compilation/RuntimeCompiler.java renamed to BackEnd/src/radin/backend/compilation/RuntimeCompiler.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1-
package radin.core.output.backend.compilation;
1+
package radin.backend.compilation;
22

3-
import radin.core.output.backend.microcompilers.IndentPrintWriter;
3+
import radin.backend.microcompilers.IndentPrintWriter;
44
import radin.core.semantics.TypeEnvironment;
55
import radin.core.semantics.types.compound.CXClassType;
6+
import radin.core.utility.ICompilationSettings;
67
import radin.core.utility.UniversalCompilerSettings;
78

89
import java.io.*;
@@ -13,6 +14,8 @@
1314
import java.util.function.Predicate;
1415
import java.util.stream.Collectors;
1516

17+
import static radin.core.utility.ICompilationSettings.createBuildFile;
18+
1619
public class RuntimeCompiler extends AbstractIndentedOutputSingleOutputCompiler {
1720

1821

@@ -21,7 +24,7 @@ public class RuntimeCompiler extends AbstractIndentedOutputSingleOutputCompiler
2124
private String jodinEntrancePoint = "__main";
2225

2326
public RuntimeCompiler(TypeEnvironment environment) throws IOException {
24-
super(new PrintWriter(new FileWriter(new File("runtime.jdn"))), 0);
27+
super(new PrintWriter(new FileWriter(createBuildFile("runtime.jdn"))), 0);
2528
this.environment = environment;
2629
}
2730

@@ -34,7 +37,8 @@ public static <T> Predicate<T> distinctBy(Function<? super T, ?> f) {
3437
public boolean compile() {
3538

3639
if(System.getenv("JODIN_HOME") != null) {
37-
File baseRuntimeFile = new File(new File(System.getenv("JODIN_HOME")), "runtime.i");
40+
File baseRuntimeFile = ICompilationSettings.getCoreFile("runtime.i");
41+
if(baseRuntimeFile == null) throw new NullPointerException("JODIN_HOME not set, can't create runtime");
3842
try {
3943
BufferedReader bufferedReader = new BufferedReader(new FileReader(baseRuntimeFile));
4044

BackEnd/src/radin/core/output/backend/microcompilers/ClassCompiler.java renamed to BackEnd/src/radin/backend/microcompilers/ClassCompiler.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
package radin.core.output.backend.microcompilers;
1+
package radin.backend.microcompilers;
22

3-
import radin.core.output.midanalysis.TypeAugmentedSemanticNode;
4-
import radin.core.output.midanalysis.TypeAugmentedSemanticTree;
5-
import radin.core.output.backend.compilation.AbstractIndentedOutputSingleOutputCompiler;
6-
import radin.core.output.tags.PriorConstructorTag;
3+
import radin.midanalysis.TypeAugmentedSemanticNode;
4+
import radin.midanalysis.TypeAugmentedSemanticTree;
5+
import radin.backend.compilation.AbstractIndentedOutputSingleOutputCompiler;
6+
import radin.output.tags.PriorConstructorTag;
77
import radin.core.semantics.ASTNodeType;
88
import radin.core.semantics.AbstractSyntaxNode;
9-
import radin.core.semantics.types.compound.CXClassType;
109
import radin.core.semantics.types.compound.CXStructType;
1110
import radin.core.semantics.types.compound.ICXClassType;
1211
import radin.core.semantics.types.methods.CXConstructor;

BackEnd/src/radin/core/output/backend/microcompilers/CompoundStatementCompiler.java renamed to BackEnd/src/radin/backend/microcompilers/CompoundStatementCompiler.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
package radin.core.output.backend.microcompilers;
1+
package radin.backend.microcompilers;
22

3-
import radin.core.lexical.Token;
4-
import radin.core.output.backend.compilation.AbstractIndentedOutputCompiler;
5-
import radin.core.output.midanalysis.TypeAugmentedSemanticNode;
3+
import radin.backend.compilation.AbstractIndentedOutputCompiler;
4+
import radin.midanalysis.TypeAugmentedSemanticNode;
65

76
import java.io.PrintWriter;
87

BackEnd/src/radin/core/output/backend/microcompilers/ConstructorCompiler.java renamed to BackEnd/src/radin/backend/microcompilers/ConstructorCompiler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package radin.core.output.backend.microcompilers;
1+
package radin.backend.microcompilers;
22

3-
import radin.core.output.midanalysis.TypeAugmentedSemanticNode;
4-
import radin.core.output.backend.compilation.AbstractIndentedOutputSingleOutputCompiler;
5-
import radin.core.output.tags.PriorConstructorTag;
3+
import radin.midanalysis.TypeAugmentedSemanticNode;
4+
import radin.backend.compilation.AbstractIndentedOutputSingleOutputCompiler;
5+
import radin.output.tags.PriorConstructorTag;
66
import radin.core.semantics.types.methods.CXConstructor;
77
import radin.core.semantics.types.methods.CXParameter;
88
import radin.core.semantics.types.primitives.PointerType;

BackEnd/src/radin/core/output/backend/microcompilers/ExpressionCompiler.java renamed to BackEnd/src/radin/backend/microcompilers/ExpressionCompiler.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
package radin.core.output.backend.microcompilers;
1+
package radin.backend.microcompilers;
22

3-
import radin.core.output.backend.compilation.AbstractCompiler;
4-
import radin.core.output.midanalysis.TypeAugmentedSemanticNode;
5-
import radin.core.output.tags.BasicCompilationTag;
6-
import radin.core.output.tags.ConstructorCallTag;
7-
import radin.core.output.tags.MethodCallTag;
8-
import radin.core.output.tags.SuperCallTag;
3+
import radin.backend.compilation.AbstractCompiler;
4+
import radin.midanalysis.TypeAugmentedSemanticNode;
5+
import radin.output.tags.BasicCompilationTag;
6+
import radin.output.tags.ConstructorCallTag;
7+
import radin.output.tags.MethodCallTag;
8+
import radin.output.tags.SuperCallTag;
99
import radin.core.lexical.Token;
1010
import radin.core.semantics.ASTNodeType;
1111
import radin.core.semantics.TypeEnvironment;

BackEnd/src/radin/core/output/backend/microcompilers/FunctionCompiler.java renamed to BackEnd/src/radin/backend/microcompilers/FunctionCompiler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
package radin.core.output.backend.microcompilers;
1+
package radin.backend.microcompilers;
22

3-
import radin.core.output.backend.compilation.AbstractIndentedOutputSingleOutputCompiler;
4-
import radin.core.output.midanalysis.TypeAugmentedSemanticNode;
3+
import radin.backend.compilation.AbstractIndentedOutputSingleOutputCompiler;
4+
import radin.midanalysis.TypeAugmentedSemanticNode;
55
import radin.core.semantics.TypeEnvironment;
66
import radin.core.semantics.types.CXType;
77
import radin.core.semantics.types.compound.CXClassType;
88
import radin.core.semantics.types.methods.CXParameter;
9-
import radin.core.output.typeanalysis.errors.IncorrectlyMissingCompoundStatement;
9+
import radin.output.typeanalysis.errors.IncorrectlyMissingCompoundStatement;
1010
import radin.core.utility.ICompilationSettings;
1111
import radin.core.utility.UniversalCompilerSettings;
1212

BackEnd/src/radin/core/output/backend/microcompilers/ImplementCompiler.java renamed to BackEnd/src/radin/backend/microcompilers/ImplementCompiler.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
package radin.core.output.backend.microcompilers;
1+
package radin.backend.microcompilers;
22

3-
import radin.core.output.backend.compilation.AbstractIndentedOutputSingleOutputCompiler;
4-
import radin.core.output.midanalysis.TypeAugmentedSemanticNode;
5-
import radin.core.output.tags.ImplementMethodTag;
6-
import radin.core.output.tags.PriorConstructorTag;
3+
import radin.backend.compilation.AbstractIndentedOutputSingleOutputCompiler;
4+
import radin.midanalysis.TypeAugmentedSemanticNode;
5+
import radin.output.tags.ImplementMethodTag;
6+
import radin.output.tags.PriorConstructorTag;
77
import radin.core.semantics.ASTNodeType;
88
import radin.core.semantics.types.compound.CXClassType;
99
import radin.core.semantics.types.methods.CXConstructor;
10-
import radin.core.semantics.types.wrapped.CXMappedType;
1110

1211
import java.io.PrintWriter;
1312

BackEnd/src/radin/core/output/backend/microcompilers/IndentPrintWriter.java renamed to BackEnd/src/radin/backend/microcompilers/IndentPrintWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package radin.core.output.backend.microcompilers;
1+
package radin.backend.microcompilers;
22

33
import java.io.PrintWriter;
44

BackEnd/src/radin/core/output/backend/microcompilers/MethodCompiler.java renamed to BackEnd/src/radin/backend/microcompilers/MethodCompiler.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
package radin.core.output.backend.microcompilers;
1+
package radin.backend.microcompilers;
22

3-
import radin.core.output.midanalysis.MethodTASNTracker;
4-
import radin.core.output.midanalysis.TypeAugmentedSemanticNode;
5-
import radin.core.output.typeanalysis.errors.IncorrectlyMissingCompoundStatement;
6-
import radin.core.semantics.ASTNodeType;
3+
import radin.midanalysis.MethodTASNTracker;
4+
import radin.midanalysis.TypeAugmentedSemanticNode;
5+
import radin.output.typeanalysis.errors.IncorrectlyMissingCompoundStatement;
76
import radin.core.semantics.types.compound.CXClassType;
87
import radin.core.semantics.types.methods.CXMethod;
98
import radin.core.semantics.types.methods.CXParameter;

BackEnd/src/radin/core/output/backend/microcompilers/StatementCompiler.java renamed to BackEnd/src/radin/backend/microcompilers/StatementCompiler.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package radin.core.output.backend.microcompilers;
1+
package radin.backend.microcompilers;
22

3-
import radin.core.output.backend.compilation.AbstractIndentedOutputCompiler;
4-
import radin.core.output.midanalysis.TypeAugmentedSemanticNode;
5-
import radin.core.output.tags.ArrayWithSizeTag;
6-
import radin.core.output.tags.BasicCompilationTag;
7-
import radin.core.output.tags.MultiDimensionalArrayWithSizeTag;
3+
import radin.backend.compilation.AbstractIndentedOutputCompiler;
4+
import radin.midanalysis.TypeAugmentedSemanticNode;
5+
import radin.output.tags.ArrayWithSizeTag;
6+
import radin.output.tags.BasicCompilationTag;
7+
import radin.output.tags.MultiDimensionalArrayWithSizeTag;
88
import radin.core.semantics.ASTNodeType;
99
import radin.core.semantics.types.CXType;
1010
import radin.core.semantics.types.TypedAbstractSyntaxNode;

BackEnd/src/radin/core/output/backend/microcompilers/TopLevelDeclarationCompiler.java renamed to BackEnd/src/radin/backend/microcompilers/TopLevelDeclarationCompiler.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
package radin.core.output.backend.microcompilers;
1+
package radin.backend.microcompilers;
22

3-
import radin.core.output.backend.compilation.AbstractCompiler;
4-
import radin.core.output.midanalysis.TypeAugmentedSemanticNode;
5-
import radin.core.output.tags.TypeDefHelperTag;
3+
import radin.backend.compilation.AbstractCompiler;
4+
import radin.midanalysis.TypeAugmentedSemanticNode;
5+
import radin.output.tags.TypeDefHelperTag;
66
import radin.core.semantics.ASTNodeType;
77
import radin.core.semantics.types.CXType;
88
import radin.core.semantics.types.ICXWrapper;

Combo/build/tmp/jar/MANIFEST.MF

Lines changed: 0 additions & 2 deletions
This file was deleted.

Combo/src/radin/core/output/combo/MultipleFileHandler.java renamed to Combo/src/radin/combo/MultipleFileHandler.java

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
1-
package radin.core.output.combo;
1+
package radin.combo;
22

33
import radin.core.ErrorReader;
44
import radin.core.IFrontEndUnit;
55
import radin.core.chaining.IToolChain;
66
import radin.core.errorhandling.AbstractCompilationError;
77
import radin.core.errorhandling.CompilationError;
88
import radin.core.errorhandling.ICompilationErrorCollector;
9-
import radin.core.output.midanalysis.ScopedTypeTracker;
10-
import radin.core.output.midanalysis.TypeAugmentedSemanticNode;
11-
import radin.core.output.typeanalysis.TypeAnalyzer;
12-
import radin.core.output.typeanalysis.errors.MissingMainFunctionError;
13-
import radin.core.output.typeanalysis.errors.MultipleMainDefinitionsError;
9+
import radin.midanalysis.ScopedTypeTracker;
10+
import radin.midanalysis.TypeAugmentedSemanticNode;
11+
import radin.output.typeanalysis.TypeAnalyzer;
12+
import radin.output.typeanalysis.errors.MissingMainFunctionError;
13+
import radin.output.typeanalysis.errors.MultipleMainDefinitionsError;
1414
import radin.core.semantics.AbstractSyntaxNode;
1515
import radin.core.semantics.TypeEnvironment;
1616
import radin.core.semantics.types.CXIdentifier;
@@ -75,6 +75,25 @@ public MultipleFileHandler(List<File> files, ICompilationSettings<AbstractSyntax
7575
classToFile = new HashMap<>();
7676

7777
}
78+
79+
public void addFile(File file) {
80+
CompilationNode e = new CompilationNode(file, TypeAnalyzer.getEnvironment());
81+
nodes.add(e);
82+
dependencies.put(e, new LinkedList<>());
83+
numberFilesToCompile++;
84+
}
85+
86+
public void addFiles(Collection<File> files) {
87+
for (File file : files) {
88+
addFile(file);
89+
}
90+
}
91+
92+
public void addFiles(File[] files) {
93+
for (File file : files) {
94+
addFile(file);
95+
}
96+
}
7897

7998
public List<Output> getGeneratedOutputs() {
8099
return generatedOutputs;

0 commit comments

Comments
 (0)