From 02fae0e722ee83dc205ca5509133881a0bfdc1df Mon Sep 17 00:00:00 2001 From: Irmen de Jong Date: Sun, 7 Feb 2021 06:49:51 +0100 Subject: [PATCH] reducing ast dependencies --- compiler/src/prog8/ast/AstToSourceCode.kt | 2 +- compiler/src/prog8/ast/AstToplevel.kt | 4 ++-- compiler/src/prog8/ast/expressions/AstExpressions.kt | 4 ++-- compiler/src/prog8/ast/processing/AstChecker.kt | 1 + compiler/src/prog8/ast/processing/AstIdentifiersChecker.kt | 1 + compiler/src/prog8/ast/processing/AstVariousTransforms.kt | 2 ++ .../prog8/ast/processing/ImportedModuleDirectiveRemover.kt | 2 ++ compiler/src/prog8/ast/processing/LiteralsToAutoVars.kt | 2 ++ compiler/src/prog8/ast/processing/StatementReorderer.kt | 2 ++ compiler/src/prog8/ast/processing/TypecastsAdder.kt | 2 ++ compiler/src/prog8/ast/processing/VariousCleanups.kt | 2 ++ compiler/src/prog8/ast/processing/VerifyFunctionArgTypes.kt | 1 + compiler/src/prog8/ast/statements/AstStatements.kt | 4 ++-- compiler/src/prog8/ast/{processing => walk}/AstWalker.kt | 2 +- compiler/src/prog8/ast/{processing => walk}/IAstVisitor.kt | 2 +- .../src/prog8/compiler/BeforeAsmGenerationAstChanger.kt | 4 ++-- compiler/src/prog8/optimizer/BinExprSplitter.kt | 4 ++-- compiler/src/prog8/optimizer/CallGraph.kt | 2 +- compiler/src/prog8/optimizer/ConstantFoldingOptimizer.kt | 4 ++-- compiler/src/prog8/optimizer/ConstantIdentifierReplacer.kt | 4 ++-- compiler/src/prog8/optimizer/ExpressionSimplifier.kt | 4 ++-- compiler/src/prog8/optimizer/StatementOptimizer.kt | 6 +++--- compiler/src/prog8/optimizer/UnusedCodeRemover.kt | 4 ++-- 23 files changed, 40 insertions(+), 25 deletions(-) rename compiler/src/prog8/ast/{processing => walk}/AstWalker.kt (99%) rename compiler/src/prog8/ast/{processing => walk}/IAstVisitor.kt (99%) diff --git a/compiler/src/prog8/ast/AstToSourceCode.kt b/compiler/src/prog8/ast/AstToSourceCode.kt index b200f2f83..873185b42 100644 --- a/compiler/src/prog8/ast/AstToSourceCode.kt +++ b/compiler/src/prog8/ast/AstToSourceCode.kt @@ -5,7 +5,7 @@ import prog8.ast.base.DataType import prog8.ast.base.NumericDatatypes import prog8.ast.base.VarDeclType import prog8.ast.expressions.* -import prog8.ast.processing.IAstVisitor +import prog8.ast.walk.IAstVisitor import prog8.ast.statements.* diff --git a/compiler/src/prog8/ast/AstToplevel.kt b/compiler/src/prog8/ast/AstToplevel.kt index a09b0d961..dc05cee75 100644 --- a/compiler/src/prog8/ast/AstToplevel.kt +++ b/compiler/src/prog8/ast/AstToplevel.kt @@ -3,9 +3,9 @@ package prog8.ast import prog8.ast.base.* import prog8.ast.expressions.Expression import prog8.ast.expressions.IdentifierReference -import prog8.ast.processing.AstWalker -import prog8.ast.processing.IAstVisitor +import prog8.ast.walk.IAstVisitor import prog8.ast.statements.* +import prog8.ast.walk.AstWalker import prog8.functions.BuiltinFunctions import java.nio.file.Path import kotlin.math.abs diff --git a/compiler/src/prog8/ast/expressions/AstExpressions.kt b/compiler/src/prog8/ast/expressions/AstExpressions.kt index 2be40defd..65b093b7c 100644 --- a/compiler/src/prog8/ast/expressions/AstExpressions.kt +++ b/compiler/src/prog8/ast/expressions/AstExpressions.kt @@ -3,9 +3,9 @@ package prog8.ast.expressions import prog8.ast.* import prog8.ast.antlr.escape import prog8.ast.base.* -import prog8.ast.processing.AstWalker -import prog8.ast.processing.IAstVisitor +import prog8.ast.walk.IAstVisitor import prog8.ast.statements.* +import prog8.ast.walk.AstWalker import prog8.functions.BuiltinFunctions import prog8.functions.CannotEvaluateException import prog8.functions.NotConstArgumentException diff --git a/compiler/src/prog8/ast/processing/AstChecker.kt b/compiler/src/prog8/ast/processing/AstChecker.kt index 24841ea5b..04b1df99c 100644 --- a/compiler/src/prog8/ast/processing/AstChecker.kt +++ b/compiler/src/prog8/ast/processing/AstChecker.kt @@ -6,6 +6,7 @@ import prog8.ast.Program import prog8.ast.base.* import prog8.ast.expressions.* import prog8.ast.statements.* +import prog8.ast.walk.IAstVisitor import prog8.compiler.CompilationOptions import prog8.compiler.target.C64Target import prog8.compiler.target.CompilationTarget diff --git a/compiler/src/prog8/ast/processing/AstIdentifiersChecker.kt b/compiler/src/prog8/ast/processing/AstIdentifiersChecker.kt index 2aba7c292..ac5756f9e 100644 --- a/compiler/src/prog8/ast/processing/AstIdentifiersChecker.kt +++ b/compiler/src/prog8/ast/processing/AstIdentifiersChecker.kt @@ -5,6 +5,7 @@ import prog8.ast.Program import prog8.ast.base.* import prog8.ast.expressions.* import prog8.ast.statements.* +import prog8.ast.walk.IAstVisitor import prog8.compiler.target.CompilationTarget import prog8.functions.BuiltinFunctions diff --git a/compiler/src/prog8/ast/processing/AstVariousTransforms.kt b/compiler/src/prog8/ast/processing/AstVariousTransforms.kt index 15db329f8..9ca1980f3 100644 --- a/compiler/src/prog8/ast/processing/AstVariousTransforms.kt +++ b/compiler/src/prog8/ast/processing/AstVariousTransforms.kt @@ -5,6 +5,8 @@ import prog8.ast.Program import prog8.ast.base.* import prog8.ast.expressions.* import prog8.ast.statements.* +import prog8.ast.walk.AstWalker +import prog8.ast.walk.IAstModification internal class AstVariousTransforms(private val program: Program) : AstWalker() { diff --git a/compiler/src/prog8/ast/processing/ImportedModuleDirectiveRemover.kt b/compiler/src/prog8/ast/processing/ImportedModuleDirectiveRemover.kt index b2cf3f215..4cc75c1f0 100644 --- a/compiler/src/prog8/ast/processing/ImportedModuleDirectiveRemover.kt +++ b/compiler/src/prog8/ast/processing/ImportedModuleDirectiveRemover.kt @@ -3,6 +3,8 @@ package prog8.ast.processing import prog8.ast.INameScope import prog8.ast.Node import prog8.ast.statements.Directive +import prog8.ast.walk.AstWalker +import prog8.ast.walk.IAstModification internal class ImportedModuleDirectiveRemover: AstWalker() { diff --git a/compiler/src/prog8/ast/processing/LiteralsToAutoVars.kt b/compiler/src/prog8/ast/processing/LiteralsToAutoVars.kt index 8507049e3..e797da10c 100644 --- a/compiler/src/prog8/ast/processing/LiteralsToAutoVars.kt +++ b/compiler/src/prog8/ast/processing/LiteralsToAutoVars.kt @@ -5,6 +5,8 @@ import prog8.ast.Program import prog8.ast.base.* import prog8.ast.expressions.* import prog8.ast.statements.* +import prog8.ast.walk.AstWalker +import prog8.ast.walk.IAstModification internal class LiteralsToAutoVars(private val program: Program) : AstWalker() { diff --git a/compiler/src/prog8/ast/processing/StatementReorderer.kt b/compiler/src/prog8/ast/processing/StatementReorderer.kt index c37fb63d9..eef6be1e3 100644 --- a/compiler/src/prog8/ast/processing/StatementReorderer.kt +++ b/compiler/src/prog8/ast/processing/StatementReorderer.kt @@ -5,6 +5,8 @@ import prog8.ast.base.* import prog8.ast.expressions.* import prog8.ast.statements.* import prog8.functions.BuiltinFunctions +import prog8.ast.walk.AstWalker +import prog8.ast.walk.IAstModification internal class StatementReorderer(val program: Program, val errors: ErrorReporter) : AstWalker() { diff --git a/compiler/src/prog8/ast/processing/TypecastsAdder.kt b/compiler/src/prog8/ast/processing/TypecastsAdder.kt index 52d6a2dc3..76aa35212 100644 --- a/compiler/src/prog8/ast/processing/TypecastsAdder.kt +++ b/compiler/src/prog8/ast/processing/TypecastsAdder.kt @@ -8,6 +8,8 @@ import prog8.ast.base.* import prog8.ast.expressions.* import prog8.ast.statements.* import prog8.functions.BuiltinFunctions +import prog8.ast.walk.AstWalker +import prog8.ast.walk.IAstModification class TypecastsAdder(val program: Program, val errors: ErrorReporter) : AstWalker() { diff --git a/compiler/src/prog8/ast/processing/VariousCleanups.kt b/compiler/src/prog8/ast/processing/VariousCleanups.kt index 753eb6338..9cfe9c5de 100644 --- a/compiler/src/prog8/ast/processing/VariousCleanups.kt +++ b/compiler/src/prog8/ast/processing/VariousCleanups.kt @@ -6,6 +6,8 @@ import prog8.ast.expressions.NumericLiteralValue import prog8.ast.expressions.TypecastExpression import prog8.ast.statements.AnonymousScope import prog8.ast.statements.NopStatement +import prog8.ast.walk.AstWalker +import prog8.ast.walk.IAstModification internal class VariousCleanups: AstWalker() { diff --git a/compiler/src/prog8/ast/processing/VerifyFunctionArgTypes.kt b/compiler/src/prog8/ast/processing/VerifyFunctionArgTypes.kt index 561fbf280..310c23256 100644 --- a/compiler/src/prog8/ast/processing/VerifyFunctionArgTypes.kt +++ b/compiler/src/prog8/ast/processing/VerifyFunctionArgTypes.kt @@ -8,6 +8,7 @@ import prog8.ast.expressions.Expression import prog8.ast.expressions.FunctionCall import prog8.ast.expressions.TypecastExpression import prog8.ast.statements.* +import prog8.ast.walk.IAstVisitor import prog8.compiler.CompilerException import prog8.functions.BuiltinFunctions diff --git a/compiler/src/prog8/ast/statements/AstStatements.kt b/compiler/src/prog8/ast/statements/AstStatements.kt index 10125f8ba..27d2b609b 100644 --- a/compiler/src/prog8/ast/statements/AstStatements.kt +++ b/compiler/src/prog8/ast/statements/AstStatements.kt @@ -3,8 +3,8 @@ package prog8.ast.statements import prog8.ast.* import prog8.ast.base.* import prog8.ast.expressions.* -import prog8.ast.processing.AstWalker -import prog8.ast.processing.IAstVisitor +import prog8.ast.walk.IAstVisitor +import prog8.ast.walk.AstWalker sealed class Statement : Node { diff --git a/compiler/src/prog8/ast/processing/AstWalker.kt b/compiler/src/prog8/ast/walk/AstWalker.kt similarity index 99% rename from compiler/src/prog8/ast/processing/AstWalker.kt rename to compiler/src/prog8/ast/walk/AstWalker.kt index 6a1a6f09a..426d7c5b3 100644 --- a/compiler/src/prog8/ast/processing/AstWalker.kt +++ b/compiler/src/prog8/ast/walk/AstWalker.kt @@ -1,4 +1,4 @@ -package prog8.ast.processing +package prog8.ast.walk import prog8.ast.* import prog8.ast.base.FatalAstException diff --git a/compiler/src/prog8/ast/processing/IAstVisitor.kt b/compiler/src/prog8/ast/walk/IAstVisitor.kt similarity index 99% rename from compiler/src/prog8/ast/processing/IAstVisitor.kt rename to compiler/src/prog8/ast/walk/IAstVisitor.kt index f0924bc8c..c46b9e7ab 100644 --- a/compiler/src/prog8/ast/processing/IAstVisitor.kt +++ b/compiler/src/prog8/ast/walk/IAstVisitor.kt @@ -1,4 +1,4 @@ -package prog8.ast.processing +package prog8.ast.walk import prog8.ast.Module import prog8.ast.Program diff --git a/compiler/src/prog8/compiler/BeforeAsmGenerationAstChanger.kt b/compiler/src/prog8/compiler/BeforeAsmGenerationAstChanger.kt index 53cb91364..80ee88988 100644 --- a/compiler/src/prog8/compiler/BeforeAsmGenerationAstChanger.kt +++ b/compiler/src/prog8/compiler/BeforeAsmGenerationAstChanger.kt @@ -5,9 +5,9 @@ import prog8.ast.Node import prog8.ast.Program import prog8.ast.base.* import prog8.ast.expressions.* -import prog8.ast.processing.AstWalker -import prog8.ast.processing.IAstModification import prog8.ast.statements.* +import prog8.ast.walk.AstWalker +import prog8.ast.walk.IAstModification import prog8.compiler.target.CompilationTarget diff --git a/compiler/src/prog8/optimizer/BinExprSplitter.kt b/compiler/src/prog8/optimizer/BinExprSplitter.kt index 0bf3da979..0abc316ed 100644 --- a/compiler/src/prog8/optimizer/BinExprSplitter.kt +++ b/compiler/src/prog8/optimizer/BinExprSplitter.kt @@ -4,10 +4,10 @@ import prog8.ast.INameScope import prog8.ast.Node import prog8.ast.Program import prog8.ast.expressions.* -import prog8.ast.processing.AstWalker -import prog8.ast.processing.IAstModification import prog8.ast.statements.AssignTarget import prog8.ast.statements.Assignment +import prog8.ast.walk.AstWalker +import prog8.ast.walk.IAstModification import prog8.compiler.target.CompilationTarget diff --git a/compiler/src/prog8/optimizer/CallGraph.kt b/compiler/src/prog8/optimizer/CallGraph.kt index 9ec36df8b..4977ebd49 100644 --- a/compiler/src/prog8/optimizer/CallGraph.kt +++ b/compiler/src/prog8/optimizer/CallGraph.kt @@ -7,7 +7,7 @@ import prog8.ast.base.ParentSentinel import prog8.ast.base.Position import prog8.ast.expressions.FunctionCall import prog8.ast.expressions.IdentifierReference -import prog8.ast.processing.IAstVisitor +import prog8.ast.walk.IAstVisitor import prog8.ast.statements.* import prog8.compiler.loadAsmIncludeFile diff --git a/compiler/src/prog8/optimizer/ConstantFoldingOptimizer.kt b/compiler/src/prog8/optimizer/ConstantFoldingOptimizer.kt index 0df055700..288eb7f9a 100644 --- a/compiler/src/prog8/optimizer/ConstantFoldingOptimizer.kt +++ b/compiler/src/prog8/optimizer/ConstantFoldingOptimizer.kt @@ -4,9 +4,9 @@ import prog8.ast.Node import prog8.ast.Program import prog8.ast.base.* import prog8.ast.expressions.* -import prog8.ast.processing.AstWalker -import prog8.ast.processing.IAstModification import prog8.ast.statements.* +import prog8.ast.walk.AstWalker +import prog8.ast.walk.IAstModification import prog8.compiler.target.CompilationTarget import kotlin.math.pow diff --git a/compiler/src/prog8/optimizer/ConstantIdentifierReplacer.kt b/compiler/src/prog8/optimizer/ConstantIdentifierReplacer.kt index ba93ee4a6..ca292e212 100644 --- a/compiler/src/prog8/optimizer/ConstantIdentifierReplacer.kt +++ b/compiler/src/prog8/optimizer/ConstantIdentifierReplacer.kt @@ -4,12 +4,12 @@ import prog8.ast.Node import prog8.ast.Program import prog8.ast.base.* import prog8.ast.expressions.* -import prog8.ast.processing.AstWalker -import prog8.ast.processing.IAstModification import prog8.ast.statements.ArrayIndex import prog8.ast.statements.AssignTarget import prog8.ast.statements.ForLoop import prog8.ast.statements.VarDecl +import prog8.ast.walk.AstWalker +import prog8.ast.walk.IAstModification import prog8.compiler.target.CompilationTarget // Fix up the literal value's type to match that of the vardecl diff --git a/compiler/src/prog8/optimizer/ExpressionSimplifier.kt b/compiler/src/prog8/optimizer/ExpressionSimplifier.kt index b60259a08..e4c6d5053 100644 --- a/compiler/src/prog8/optimizer/ExpressionSimplifier.kt +++ b/compiler/src/prog8/optimizer/ExpressionSimplifier.kt @@ -4,9 +4,9 @@ import prog8.ast.Node import prog8.ast.Program import prog8.ast.base.* import prog8.ast.expressions.* -import prog8.ast.processing.AstWalker -import prog8.ast.processing.IAstModification import prog8.ast.statements.Assignment +import prog8.ast.walk.AstWalker +import prog8.ast.walk.IAstModification import kotlin.math.abs import kotlin.math.log2 import kotlin.math.pow diff --git a/compiler/src/prog8/optimizer/StatementOptimizer.kt b/compiler/src/prog8/optimizer/StatementOptimizer.kt index b0996500a..25c0846ed 100644 --- a/compiler/src/prog8/optimizer/StatementOptimizer.kt +++ b/compiler/src/prog8/optimizer/StatementOptimizer.kt @@ -5,10 +5,10 @@ import prog8.ast.Node import prog8.ast.Program import prog8.ast.base.* import prog8.ast.expressions.* -import prog8.ast.processing.AstWalker -import prog8.ast.processing.IAstModification -import prog8.ast.processing.IAstVisitor +import prog8.ast.walk.IAstVisitor import prog8.ast.statements.* +import prog8.ast.walk.AstWalker +import prog8.ast.walk.IAstModification import prog8.compiler.target.CompilationTarget import prog8.functions.BuiltinFunctions import kotlin.math.floor diff --git a/compiler/src/prog8/optimizer/UnusedCodeRemover.kt b/compiler/src/prog8/optimizer/UnusedCodeRemover.kt index 86cf211a7..3d07d1dfb 100644 --- a/compiler/src/prog8/optimizer/UnusedCodeRemover.kt +++ b/compiler/src/prog8/optimizer/UnusedCodeRemover.kt @@ -5,9 +5,9 @@ import prog8.ast.Node import prog8.ast.Program import prog8.ast.base.ErrorReporter import prog8.ast.expressions.* -import prog8.ast.processing.AstWalker -import prog8.ast.processing.IAstModification import prog8.ast.statements.* +import prog8.ast.walk.AstWalker +import prog8.ast.walk.IAstModification import prog8.compiler.target.CompilationTarget