From 4b186756e317b9eac3b995b8b97027380ac142ae Mon Sep 17 00:00:00 2001 From: warburec <77669019+warburec@users.noreply.github.com> Date: Sat, 5 Apr 2025 21:13:49 +0100 Subject: [PATCH 1/2] Restructure for object construction Kept within an isolated folder to be easier to find for individuals new to the project. --- .../{builders => component_construction}/Compiler.java | 2 +- .../ParameterError.java | 2 +- .../builders/CompilerBuilder.java | 8 ++++++-- .../bundles/GrammarBundle.java | 2 +- .../bundles/LexicalBundle.java | 2 +- .../factories/code_generation}/BasicCodeGenFactory.java | 3 +-- .../factories/code_generation}/CodeGeneratorFactory.java | 2 +- .../factories/grammar}/BNFConvertor.java | 3 +-- .../factories/grammar}/GrammarFactory.java | 2 +- .../lexical_analysis}/GeneralLexicalAnalyserFactory.java | 3 +-- .../lexical_analysis}/LexicalAnalyserFactory.java | 2 +- .../factories/syntax_analysis}/CLR1ParserFactory.java | 3 +-- .../factories/syntax_analysis}/SyntaxAnalyserFactory.java | 2 +- .../grammars/{ => basic_identifier}/BasicIdentifier.txt | 0 .../integerComparison.txt} | 0 .../CompilerTests.java | 7 +++++-- .../builders/CompilerBuilderTests.java | 7 +++++-- .../factories/grammar}/BNFConvertorTests.java | 4 ++-- 18 files changed, 30 insertions(+), 24 deletions(-) rename src/main/java/{builders => component_construction}/Compiler.java (96%) rename src/main/java/{builders => component_construction}/ParameterError.java (80%) rename src/main/java/{ => component_construction}/builders/CompilerBuilder.java (94%) rename src/main/java/{builders => component_construction}/bundles/GrammarBundle.java (90%) rename src/main/java/{builders => component_construction}/bundles/LexicalBundle.java (88%) rename src/main/java/{builders/concrete_factories => component_construction/factories/code_generation}/BasicCodeGenFactory.java (79%) rename src/main/java/{builders => component_construction/factories/code_generation}/CodeGeneratorFactory.java (76%) rename src/main/java/{builders/concrete_factories => component_construction/factories/grammar}/BNFConvertor.java (99%) rename src/main/java/{builders => component_construction/factories/grammar}/GrammarFactory.java (69%) rename src/main/java/{builders/concrete_factories => component_construction/factories/lexical_analysis}/GeneralLexicalAnalyserFactory.java (87%) rename src/main/java/{builders => component_construction/factories/lexical_analysis}/LexicalAnalyserFactory.java (83%) rename src/main/java/{builders/concrete_factories => component_construction/factories/syntax_analysis}/CLR1ParserFactory.java (83%) rename src/main/java/{builders => component_construction/factories/syntax_analysis}/SyntaxAnalyserFactory.java (75%) rename src/main/java/grammars/{ => basic_identifier}/BasicIdentifier.txt (100%) rename src/main/java/grammars/{integerComputation.txt => integer_comparison/integerComparison.txt} (100%) rename src/test/java/{builders => component_construction}/CompilerTests.java (82%) rename src/test/java/{ => component_construction}/builders/CompilerBuilderTests.java (93%) rename src/test/java/{builders/concrete_factories => component_construction/factories/grammar}/BNFConvertorTests.java (99%) diff --git a/src/main/java/builders/Compiler.java b/src/main/java/component_construction/Compiler.java similarity index 96% rename from src/main/java/builders/Compiler.java rename to src/main/java/component_construction/Compiler.java index e772dea..7ff7b57 100644 --- a/src/main/java/builders/Compiler.java +++ b/src/main/java/component_construction/Compiler.java @@ -1,4 +1,4 @@ -package builders; +package component_construction; import code_generation.CodeGenerator; import grammar_objects.Token; diff --git a/src/main/java/builders/ParameterError.java b/src/main/java/component_construction/ParameterError.java similarity index 80% rename from src/main/java/builders/ParameterError.java rename to src/main/java/component_construction/ParameterError.java index c4d1bb0..cbfce2b 100644 --- a/src/main/java/builders/ParameterError.java +++ b/src/main/java/component_construction/ParameterError.java @@ -1,4 +1,4 @@ -package builders; +package component_construction; public class ParameterError extends RuntimeException { public ParameterError(String message) { diff --git a/src/main/java/builders/CompilerBuilder.java b/src/main/java/component_construction/builders/CompilerBuilder.java similarity index 94% rename from src/main/java/builders/CompilerBuilder.java rename to src/main/java/component_construction/builders/CompilerBuilder.java index 10a4e78..b0f9fe0 100644 --- a/src/main/java/builders/CompilerBuilder.java +++ b/src/main/java/component_construction/builders/CompilerBuilder.java @@ -1,12 +1,16 @@ -package builders; +package component_construction.builders; import java.util.*; -import builders.bundles.GrammarBundle; import grammar_objects.*; import lexical_analysis.*; import syntax_analysis.SyntaxAnalyser; import code_generation.CodeGenerator; +import component_construction.*; +import component_construction.bundles.GrammarBundle; +import component_construction.factories.code_generation.CodeGeneratorFactory; +import component_construction.factories.lexical_analysis.LexicalAnalyserFactory; +import component_construction.factories.syntax_analysis.SyntaxAnalyserFactory; public class CompilerBuilder { protected LexicalAnalyserFactory lexicalAnalyserFactory; diff --git a/src/main/java/builders/bundles/GrammarBundle.java b/src/main/java/component_construction/bundles/GrammarBundle.java similarity index 90% rename from src/main/java/builders/bundles/GrammarBundle.java rename to src/main/java/component_construction/bundles/GrammarBundle.java index 763e026..2f27a99 100644 --- a/src/main/java/builders/bundles/GrammarBundle.java +++ b/src/main/java/component_construction/bundles/GrammarBundle.java @@ -1,4 +1,4 @@ -package builders.bundles; +package component_construction.bundles; import grammar_objects.*; import lexical_analysis.DynamicTokenRegex; diff --git a/src/main/java/builders/bundles/LexicalBundle.java b/src/main/java/component_construction/bundles/LexicalBundle.java similarity index 88% rename from src/main/java/builders/bundles/LexicalBundle.java rename to src/main/java/component_construction/bundles/LexicalBundle.java index 6c14038..0f3fe32 100644 --- a/src/main/java/builders/bundles/LexicalBundle.java +++ b/src/main/java/component_construction/bundles/LexicalBundle.java @@ -1,4 +1,4 @@ -package builders.bundles; +package component_construction.bundles; import lexical_analysis.DynamicTokenRegex; diff --git a/src/main/java/builders/concrete_factories/BasicCodeGenFactory.java b/src/main/java/component_construction/factories/code_generation/BasicCodeGenFactory.java similarity index 79% rename from src/main/java/builders/concrete_factories/BasicCodeGenFactory.java rename to src/main/java/component_construction/factories/code_generation/BasicCodeGenFactory.java index 07d6733..7aea3a1 100644 --- a/src/main/java/builders/concrete_factories/BasicCodeGenFactory.java +++ b/src/main/java/component_construction/factories/code_generation/BasicCodeGenFactory.java @@ -1,6 +1,5 @@ -package builders.concrete_factories; +package component_construction.factories.code_generation; -import builders.CodeGeneratorFactory; import code_generation.*; import grammar_objects.RuleConvertor; diff --git a/src/main/java/builders/CodeGeneratorFactory.java b/src/main/java/component_construction/factories/code_generation/CodeGeneratorFactory.java similarity index 76% rename from src/main/java/builders/CodeGeneratorFactory.java rename to src/main/java/component_construction/factories/code_generation/CodeGeneratorFactory.java index b6435f9..03ab9dc 100644 --- a/src/main/java/builders/CodeGeneratorFactory.java +++ b/src/main/java/component_construction/factories/code_generation/CodeGeneratorFactory.java @@ -1,4 +1,4 @@ -package builders; +package component_construction.factories.code_generation; import code_generation.CodeGenerator; import grammar_objects.RuleConvertor; diff --git a/src/main/java/builders/concrete_factories/BNFConvertor.java b/src/main/java/component_construction/factories/grammar/BNFConvertor.java similarity index 99% rename from src/main/java/builders/concrete_factories/BNFConvertor.java rename to src/main/java/component_construction/factories/grammar/BNFConvertor.java index 1ac9746..09216b3 100644 --- a/src/main/java/builders/concrete_factories/BNFConvertor.java +++ b/src/main/java/component_construction/factories/grammar/BNFConvertor.java @@ -1,8 +1,7 @@ -package builders.concrete_factories; +package component_construction.factories.grammar; import java.util.*; -import builders.GrammarFactory; import grammar_objects.*; import java.util.regex.Matcher; diff --git a/src/main/java/builders/GrammarFactory.java b/src/main/java/component_construction/factories/grammar/GrammarFactory.java similarity index 69% rename from src/main/java/builders/GrammarFactory.java rename to src/main/java/component_construction/factories/grammar/GrammarFactory.java index b86b2ce..c86379e 100644 --- a/src/main/java/builders/GrammarFactory.java +++ b/src/main/java/component_construction/factories/grammar/GrammarFactory.java @@ -1,4 +1,4 @@ -package builders; +package component_construction.factories.grammar; import grammar_objects.Grammar; diff --git a/src/main/java/builders/concrete_factories/GeneralLexicalAnalyserFactory.java b/src/main/java/component_construction/factories/lexical_analysis/GeneralLexicalAnalyserFactory.java similarity index 87% rename from src/main/java/builders/concrete_factories/GeneralLexicalAnalyserFactory.java rename to src/main/java/component_construction/factories/lexical_analysis/GeneralLexicalAnalyserFactory.java index f5a6aee..2dd009d 100644 --- a/src/main/java/builders/concrete_factories/GeneralLexicalAnalyserFactory.java +++ b/src/main/java/component_construction/factories/lexical_analysis/GeneralLexicalAnalyserFactory.java @@ -1,6 +1,5 @@ -package builders.concrete_factories; +package component_construction.factories.lexical_analysis; -import builders.LexicalAnalyserFactory; import lexical_analysis.*; public class GeneralLexicalAnalyserFactory implements LexicalAnalyserFactory { diff --git a/src/main/java/builders/LexicalAnalyserFactory.java b/src/main/java/component_construction/factories/lexical_analysis/LexicalAnalyserFactory.java similarity index 83% rename from src/main/java/builders/LexicalAnalyserFactory.java rename to src/main/java/component_construction/factories/lexical_analysis/LexicalAnalyserFactory.java index 5fcf887..cb2541b 100644 --- a/src/main/java/builders/LexicalAnalyserFactory.java +++ b/src/main/java/component_construction/factories/lexical_analysis/LexicalAnalyserFactory.java @@ -1,4 +1,4 @@ -package builders; +package component_construction.factories.lexical_analysis; import lexical_analysis.*; diff --git a/src/main/java/builders/concrete_factories/CLR1ParserFactory.java b/src/main/java/component_construction/factories/syntax_analysis/CLR1ParserFactory.java similarity index 83% rename from src/main/java/builders/concrete_factories/CLR1ParserFactory.java rename to src/main/java/component_construction/factories/syntax_analysis/CLR1ParserFactory.java index 361da6a..ca65ce4 100644 --- a/src/main/java/builders/concrete_factories/CLR1ParserFactory.java +++ b/src/main/java/component_construction/factories/syntax_analysis/CLR1ParserFactory.java @@ -1,6 +1,5 @@ -package builders.concrete_factories; +package component_construction.factories.syntax_analysis; -import builders.SyntaxAnalyserFactory; import grammar_objects.GrammarParts; import syntax_analysis.*; diff --git a/src/main/java/builders/SyntaxAnalyserFactory.java b/src/main/java/component_construction/factories/syntax_analysis/SyntaxAnalyserFactory.java similarity index 75% rename from src/main/java/builders/SyntaxAnalyserFactory.java rename to src/main/java/component_construction/factories/syntax_analysis/SyntaxAnalyserFactory.java index 2f79ba2..39b51f7 100644 --- a/src/main/java/builders/SyntaxAnalyserFactory.java +++ b/src/main/java/component_construction/factories/syntax_analysis/SyntaxAnalyserFactory.java @@ -1,4 +1,4 @@ -package builders; +package component_construction.factories.syntax_analysis; import grammar_objects.*; import syntax_analysis.SyntaxAnalyser; diff --git a/src/main/java/grammars/BasicIdentifier.txt b/src/main/java/grammars/basic_identifier/BasicIdentifier.txt similarity index 100% rename from src/main/java/grammars/BasicIdentifier.txt rename to src/main/java/grammars/basic_identifier/BasicIdentifier.txt diff --git a/src/main/java/grammars/integerComputation.txt b/src/main/java/grammars/integer_comparison/integerComparison.txt similarity index 100% rename from src/main/java/grammars/integerComputation.txt rename to src/main/java/grammars/integer_comparison/integerComparison.txt diff --git a/src/test/java/builders/CompilerTests.java b/src/test/java/component_construction/CompilerTests.java similarity index 82% rename from src/test/java/builders/CompilerTests.java rename to src/test/java/component_construction/CompilerTests.java index a03715c..31ffe8a 100644 --- a/src/test/java/builders/CompilerTests.java +++ b/src/test/java/component_construction/CompilerTests.java @@ -1,11 +1,14 @@ -package builders; +package component_construction; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; +import component_construction.builders.CompilerBuilder; +import component_construction.factories.code_generation.BasicCodeGenFactory; +import component_construction.factories.lexical_analysis.GeneralLexicalAnalyserFactory; +import component_construction.factories.syntax_analysis.CLR1ParserFactory; import grammars.basic_identifier.BasicIdentifierGrammar; import grammars.basic_identifier.convertors.XToYToXSemantic; -import builders.concrete_factories.*; import lexical_analysis.DynamicTokenRegex; import syntax_analysis.parsing.ParseFailedException; import test_aids.GrammarType; diff --git a/src/test/java/builders/CompilerBuilderTests.java b/src/test/java/component_construction/builders/CompilerBuilderTests.java similarity index 93% rename from src/test/java/builders/CompilerBuilderTests.java rename to src/test/java/component_construction/builders/CompilerBuilderTests.java index d1a0cd6..67a8e2c 100644 --- a/src/test/java/builders/CompilerBuilderTests.java +++ b/src/test/java/component_construction/builders/CompilerBuilderTests.java @@ -1,9 +1,12 @@ -package builders; +package component_construction.builders; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; -import builders.concrete_factories.*; +import component_construction.ParameterError; +import component_construction.factories.code_generation.BasicCodeGenFactory; +import component_construction.factories.lexical_analysis.GeneralLexicalAnalyserFactory; +import component_construction.factories.syntax_analysis.CLR1ParserFactory; import grammars.basic_identifier.BasicIdentifierGrammar; import grammars.basic_identifier.convertors.XToYToXSemantic; import lexical_analysis.DynamicTokenRegex; diff --git a/src/test/java/builders/concrete_factories/BNFConvertorTests.java b/src/test/java/component_construction/factories/grammar/BNFConvertorTests.java similarity index 99% rename from src/test/java/builders/concrete_factories/BNFConvertorTests.java rename to src/test/java/component_construction/factories/grammar/BNFConvertorTests.java index b5c66b2..2a7eddd 100644 --- a/src/test/java/builders/concrete_factories/BNFConvertorTests.java +++ b/src/test/java/component_construction/factories/grammar/BNFConvertorTests.java @@ -1,8 +1,8 @@ -package builders.concrete_factories; +package component_construction.factories.grammar; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Test; -import builders.concrete_factories.BNFConvertor.InvalidEscapeCharacterException; +import component_construction.factories.grammar.BNFConvertor.InvalidEscapeCharacterException; import grammar_objects.*; public class BNFConvertorTests { From b9697e24e7c8973dee4f6314d7e5c8bf78f611b8 Mon Sep 17 00:00:00 2001 From: warburec <77669019+warburec@users.noreply.github.com> Date: Sat, 5 Apr 2025 21:36:43 +0100 Subject: [PATCH 2/2] Explicit Compiler import for CompilerBuilder --- .../java/component_construction/builders/CompilerBuilder.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/main/java/component_construction/builders/CompilerBuilder.java b/src/main/java/component_construction/builders/CompilerBuilder.java index b0f9fe0..27c1f70 100644 --- a/src/main/java/component_construction/builders/CompilerBuilder.java +++ b/src/main/java/component_construction/builders/CompilerBuilder.java @@ -6,7 +6,8 @@ import lexical_analysis.*; import syntax_analysis.SyntaxAnalyser; import code_generation.CodeGenerator; -import component_construction.*; +import component_construction.Compiler; +import component_construction.ParameterError; import component_construction.bundles.GrammarBundle; import component_construction.factories.code_generation.CodeGeneratorFactory; import component_construction.factories.lexical_analysis.LexicalAnalyserFactory;