Skip to content

Commit c4c0fa8

Browse files
committed
Replace askov.schoolprojects.compilerconstruction.mjcompiler with dev.askov.mjcompiler
1 parent 5bf2f33 commit c4c0fa8

206 files changed

Lines changed: 442 additions & 441 deletions

File tree

Some content is hidden

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

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ MicroJava's single line comment starts with two forward slashes with no white sp
9393
To build and test this project you will need [Java 17](https://adoptium.net/temurin/) (the latest LTS release as of February 2023) and [Gradle 7.3](https://docs.gradle.org/current/userguide/userguide.html).
9494
Open command-line interpreter and type one of the following commands:
9595

96-
* `gradlew genLexer` (Windows) or `./gradlew genLexer` (macOS and Linux) — to generate lexer (tokenizer) implementation ([`MJLexer.java`](src/main/java/askov/schoolprojects/compilerconstruction/mjcompiler/MJLexer.java)) based on [lexer specification](src/main/spec/mjlexer.flex).
97-
* `gradlew genParser` (Windows) or `./gradlew genParser` (macOS and Linux) — to generate parser implementation ([`MJParser.java`](src/main/java/askov/schoolprojects/compilerconstruction/mjcompiler/MJParser.java), [`sym.java`](src/main/java/askov/schoolprojects/compilerconstruction/mjcompiler/sym.java)) and abstract syntax tree implementation (classes inside [`ast`](src/main/java/askov/schoolprojects/compilerconstruction/mjcompiler/ast) directory), based on [parser specification](src/main/spec/mjparser.cup).
96+
* `gradlew genLexer` (Windows) or `./gradlew genLexer` (macOS and Linux) — to generate lexer (tokenizer) implementation ([`MJLexer.java`](src/main/java/dev/askov/mjcompiler/MJLexer.java)) based on [lexer specification](src/main/spec/mjlexer.flex).
97+
* `gradlew genParser` (Windows) or `./gradlew genParser` (macOS and Linux) — to generate parser implementation ([`MJParser.java`](src/main/java/dev/askov/mjcompiler/MJParser.java), [`sym.java`](src/main/java/dev/askov/mjcompiler/sym.java)) and abstract syntax tree implementation (classes inside [`ast`](src/main/java/dev/askov/mjcompiler/ast) directory), based on [parser specification](src/main/spec/mjparser.cup).
9898
* `gradlew build` (Windows) or `./gradlew build` (macOS and Linux) — to build the project, test the compiler and run MicroJava VM. MicroJava Compiler will compile the test file [`simple_calculator.mj`](src/test/resources/simple_calculator.mj) and produce `simple_calculator.obj`. Then, the machine code inside `simple_calculator.obj` will be executed by MicroJava VM.
9999
Note that, for testing purposes, standard input has been substituted with a file named [`input_stream.txt`](src/test/resources/input_stream.txt).
100100
* `gradlew disassemble` (Windows) or `./gradlew disassemble` (macOS and Linux) — to disassemble `simple_calculator.obj` produced in the previous step, using [`rs.etf.pp1.mj.runtime.disasm`](libs/mj-runtime-1.1.jar).

build.gradle

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ plugins {
33
id 'application'
44
}
55

6-
group 'askov.schoolprojects.compilerconstruction.mjcompiler'
6+
group 'dev.askov.mjcompiler'
77
version '1.0'
88

99
repositories {
@@ -38,16 +38,16 @@ tasks.register('disassemble', JavaExec) {
3838
tasks.register('genLexer', JavaExec) {
3939
mainClass = 'JFlex.Main'
4040
classpath = sourceSets.main.compileClasspath
41-
args "-d", "src/main/java/askov/schoolprojects/compilerconstruction/mjcompiler", "src/main/spec/mjlexer.flex"
41+
args "-d", "src/main/java/dev/askov/mjcompiler", "src/main/spec/mjlexer.flex"
4242
}
4343

4444
tasks.register('genParser', JavaExec) {
4545
mainClass = 'java_cup.Main'
4646
classpath = sourceSets.main.compileClasspath - files("libs/JFlex.jar")
4747
workingDir = 'src/main/java'
48-
args "-destdir", "askov/schoolprojects/compilerconstruction/mjcompiler", "-debug", "-dump_states", "-parser", "MJParser", "-ast", "askov.schoolprojects.compilerconstruction.mjcompiler.ast", "-buildtree", "../spec/mjparser.cup"
48+
args "-destdir", "dev/askov/mjcompiler", "-debug", "-dump_states", "-parser", "MJParser", "-ast", "dev.askov.compilerconstruction.mjcompiler.ast", "-buildtree", "../spec/mjparser.cup"
4949
}
5050

5151
application {
52-
mainClassName = 'askov.schoolprojects.compilerconstruction.mjcompiler.MJCompiler'
52+
mainClassName = 'dev.askov.mjcompiler.MJCompiler'
5353
}

src/main/java/askov/schoolprojects/compilerconstruction/mjcompiler/CodeGenerator.java renamed to src/main/java/dev/askov/mjcompiler/CodeGenerator.java

Lines changed: 65 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -17,77 +17,77 @@
1717
* along with this program. If not, see <https://www.gnu.org/licenses/>.
1818
*/
1919

20-
package askov.schoolprojects.compilerconstruction.mjcompiler;
21-
22-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.VisitorAdaptor;
23-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.PrintExprStatement;
24-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.Mulop;
25-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.IdentDesignator;
26-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.ReadStatement;
27-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.MethodDecl;
28-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.IfThenStatement;
29-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.MethodCallDesignatorStatement;
30-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.ExprCondFactor;
31-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.BreakStatement;
32-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.PlusAddop;
33-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.ContinueStatement;
34-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.NewScalarFactor;
35-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.LtRelop;
36-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.DecrDesignatorStatement;
37-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.Designator;
38-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.ConditionEnd;
39-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.MulopTerm;
40-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.MemberAccessDesignator;
41-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.DivMulop;
42-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.LeqRelop;
43-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.AssignmentDesignatorStatement;
44-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.MethodCallFactor;
45-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.IfThenElseStatement;
46-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.ReturnExprStatement;
47-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.DoWhileStatement;
48-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.EqRelop;
49-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.RelOpCondFactor;
50-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.ClassDecl;
51-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.GeqRelop;
52-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.ConditionStart;
53-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.ArrayElemAccessDesignatorStart;
54-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.ArrayElemAcessDesignatorLBracket;
55-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.OrCondition;
56-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.DesignatorFactor;
57-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.GtRelop;
58-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.TermCondition;
59-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.MethodName;
60-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.BoolFactor;
61-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.IncrDesignatorStatement;
62-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.MinusTermExpr;
63-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.CharFactor;
64-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.ArrayElemAccessDesignator;
65-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.IntFactor;
66-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.NeqRelop;
67-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.DoWhileStatementStart;
68-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.ActParsEnd;
69-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.TimesMulop;
70-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.ClassName;
71-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.SyntaxNode;
72-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.NewVectorFactor;
73-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.AddopExpr;
74-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.PrintExprIntConstStatement;
75-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.Else;
76-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.IdentDesignatorStart;
77-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.MemberAccessDesignatorStart;
78-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.ReturnNothingStatement;
20+
package dev.askov.mjcompiler;
21+
22+
import dev.askov.mjcompiler.ast.VisitorAdaptor;
23+
import dev.askov.mjcompiler.ast.PrintExprStatement;
24+
import dev.askov.mjcompiler.ast.Mulop;
25+
import dev.askov.mjcompiler.ast.IdentDesignator;
26+
import dev.askov.mjcompiler.ast.ReadStatement;
27+
import dev.askov.mjcompiler.ast.MethodDecl;
28+
import dev.askov.mjcompiler.ast.IfThenStatement;
29+
import dev.askov.mjcompiler.ast.MethodCallDesignatorStatement;
30+
import dev.askov.mjcompiler.ast.ExprCondFactor;
31+
import dev.askov.mjcompiler.ast.BreakStatement;
32+
import dev.askov.mjcompiler.ast.PlusAddop;
33+
import dev.askov.mjcompiler.ast.ContinueStatement;
34+
import dev.askov.mjcompiler.ast.NewScalarFactor;
35+
import dev.askov.mjcompiler.ast.LtRelop;
36+
import dev.askov.mjcompiler.ast.DecrDesignatorStatement;
37+
import dev.askov.mjcompiler.ast.Designator;
38+
import dev.askov.mjcompiler.ast.ConditionEnd;
39+
import dev.askov.mjcompiler.ast.MulopTerm;
40+
import dev.askov.mjcompiler.ast.MemberAccessDesignator;
41+
import dev.askov.mjcompiler.ast.DivMulop;
42+
import dev.askov.mjcompiler.ast.LeqRelop;
43+
import dev.askov.mjcompiler.ast.AssignmentDesignatorStatement;
44+
import dev.askov.mjcompiler.ast.MethodCallFactor;
45+
import dev.askov.mjcompiler.ast.IfThenElseStatement;
46+
import dev.askov.mjcompiler.ast.ReturnExprStatement;
47+
import dev.askov.mjcompiler.ast.DoWhileStatement;
48+
import dev.askov.mjcompiler.ast.EqRelop;
49+
import dev.askov.mjcompiler.ast.RelOpCondFactor;
50+
import dev.askov.mjcompiler.ast.ClassDecl;
51+
import dev.askov.mjcompiler.ast.GeqRelop;
52+
import dev.askov.mjcompiler.ast.ConditionStart;
53+
import dev.askov.mjcompiler.ast.ArrayElemAccessDesignatorStart;
54+
import dev.askov.mjcompiler.ast.ArrayElemAcessDesignatorLBracket;
55+
import dev.askov.mjcompiler.ast.OrCondition;
56+
import dev.askov.mjcompiler.ast.DesignatorFactor;
57+
import dev.askov.mjcompiler.ast.GtRelop;
58+
import dev.askov.mjcompiler.ast.TermCondition;
59+
import dev.askov.mjcompiler.ast.MethodName;
60+
import dev.askov.mjcompiler.ast.BoolFactor;
61+
import dev.askov.mjcompiler.ast.IncrDesignatorStatement;
62+
import dev.askov.mjcompiler.ast.MinusTermExpr;
63+
import dev.askov.mjcompiler.ast.CharFactor;
64+
import dev.askov.mjcompiler.ast.ArrayElemAccessDesignator;
65+
import dev.askov.mjcompiler.ast.IntFactor;
66+
import dev.askov.mjcompiler.ast.NeqRelop;
67+
import dev.askov.mjcompiler.ast.DoWhileStatementStart;
68+
import dev.askov.mjcompiler.ast.ActParsEnd;
69+
import dev.askov.mjcompiler.ast.TimesMulop;
70+
import dev.askov.mjcompiler.ast.ClassName;
71+
import dev.askov.mjcompiler.ast.SyntaxNode;
72+
import dev.askov.mjcompiler.ast.NewVectorFactor;
73+
import dev.askov.mjcompiler.ast.AddopExpr;
74+
import dev.askov.mjcompiler.ast.PrintExprIntConstStatement;
75+
import dev.askov.mjcompiler.ast.Else;
76+
import dev.askov.mjcompiler.ast.IdentDesignatorStart;
77+
import dev.askov.mjcompiler.ast.MemberAccessDesignatorStart;
78+
import dev.askov.mjcompiler.ast.ReturnNothingStatement;
7979
import java.util.ArrayList;
8080
import java.util.HashMap;
8181
import java.util.List;
8282
import java.util.Map;
8383
import java.util.Stack;
8484

85-
import askov.schoolprojects.compilerconstruction.mjcompiler.exceptions.WrongObjKindException;
86-
import askov.schoolprojects.compilerconstruction.mjcompiler.exceptions.WrongStructKindException;
87-
import askov.schoolprojects.compilerconstruction.mjcompiler.inheritancetree.InheritanceTree;
88-
import askov.schoolprojects.compilerconstruction.mjcompiler.inheritancetree.InheritanceTreeNode;
89-
import askov.schoolprojects.compilerconstruction.mjcompiler.mjsymboltable.MJTab;
90-
import askov.schoolprojects.compilerconstruction.mjcompiler.util.MJUtils;
85+
import dev.askov.mjcompiler.exceptions.WrongObjKindException;
86+
import dev.askov.mjcompiler.exceptions.WrongStructKindException;
87+
import dev.askov.mjcompiler.inheritancetree.InheritanceTree;
88+
import dev.askov.mjcompiler.inheritancetree.InheritanceTreeNode;
89+
import dev.askov.mjcompiler.mjsymboltable.MJTab;
90+
import dev.askov.mjcompiler.util.MJUtils;
9191
import rs.etf.pp1.mj.runtime.Code;
9292
import rs.etf.pp1.symboltable.Tab;
9393
import rs.etf.pp1.symboltable.concepts.Obj;

src/main/java/askov/schoolprojects/compilerconstruction/mjcompiler/MJCompiler.java renamed to src/main/java/dev/askov/mjcompiler/MJCompiler.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* along with this program. If not, see <https://www.gnu.org/licenses/>.
1818
*/
1919

20-
package askov.schoolprojects.compilerconstruction.mjcompiler;
20+
package dev.askov.mjcompiler;
2121

2222
import java.io.BufferedReader;
2323
import java.io.File;
@@ -28,14 +28,14 @@
2828
import org.apache.log4j.xml.DOMConfigurator;
2929

3030
import java_cup.runtime.Symbol;
31-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.Program;
32-
import askov.schoolprojects.compilerconstruction.mjcompiler.inheritancetree.InheritanceTree;
33-
import askov.schoolprojects.compilerconstruction.mjcompiler.inheritancetree.visitor.InheritanceTreePrinter;
34-
import askov.schoolprojects.compilerconstruction.mjcompiler.mjsymboltable.MJTab;
35-
import askov.schoolprojects.compilerconstruction.mjcompiler.util.Log4JUtils;
36-
import askov.schoolprojects.compilerconstruction.mjcompiler.vmt.VMTCodeGenerator;
37-
import askov.schoolprojects.compilerconstruction.mjcompiler.vmt.VMTCreator;
38-
import askov.schoolprojects.compilerconstruction.mjcompiler.vmt.VMTStartAddressGenerator;
31+
import dev.askov.mjcompiler.ast.Program;
32+
import dev.askov.mjcompiler.inheritancetree.InheritanceTree;
33+
import dev.askov.mjcompiler.inheritancetree.visitor.InheritanceTreePrinter;
34+
import dev.askov.mjcompiler.mjsymboltable.MJTab;
35+
import dev.askov.mjcompiler.util.Log4JUtils;
36+
import dev.askov.mjcompiler.vmt.VMTCodeGenerator;
37+
import dev.askov.mjcompiler.vmt.VMTCreator;
38+
import dev.askov.mjcompiler.vmt.VMTStartAddressGenerator;
3939
import rs.etf.pp1.mj.runtime.Code;
4040

4141
/**

src/main/java/askov/schoolprojects/compilerconstruction/mjcompiler/MJLexer.java renamed to src/main/java/dev/askov/mjcompiler/MJLexer.java

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

src/main/java/askov/schoolprojects/compilerconstruction/mjcompiler/MJParser.java renamed to src/main/java/dev/askov/mjcompiler/MJParser.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11

22
//----------------------------------------------------
33
// The following code was generated by CUP v0.10k
4-
// Wed Feb 01 19:22:28 CET 2023
4+
// Sat Feb 07 13:00:40 CET 2026
55
//----------------------------------------------------
66

7-
package askov.schoolprojects.compilerconstruction.mjcompiler;
7+
package dev.askov.mjcompiler;
88

99
import java_cup.runtime.*;
10-
import askov.schoolprojects.compilerconstruction.mjcompiler.ast.*;
10+
import dev.askov.mjcompiler.ast.*;
1111
import org.apache.log4j.*;
12-
import askov.schoolprojects.compilerconstruction.mjcompiler.loggers.SyntaxErrorMJLogger;
12+
import dev.askov.mjcompiler.loggers.SyntaxErrorMJLogger;
1313

1414
/** CUP v0.10k generated parser.
15-
* @version Wed Feb 01 19:22:28 CET 2023
15+
* @version Sat Feb 07 13:00:40 CET 2026
1616
*/
1717
public class MJParser extends java_cup.runtime.lr_parser {
1818

0 commit comments

Comments
 (0)