Skip to content

Commit 923d446

Browse files
committed
added parser support
1 parent 2bdd5e5 commit 923d446

File tree

4 files changed

+18
-2
lines changed

4 files changed

+18
-2
lines changed

asmetal2java_codegen/input/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
*.asm
22
*.java
3+
*.txt
34
!StandardLibrary.asm
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
*.java
2-
*.asm
2+
*.asm
3+
*.txt

asmetal2java_codegen/src/org/asmeta/asm2java/main/MainClass.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.io.BufferedInputStream;
44
import java.io.BufferedOutputStream;
55
import java.io.File;
6+
import java.io.FileWriter;
67
import java.io.InputStream;
78
import java.io.OutputStream;
89
import java.nio.file.Files;
@@ -96,6 +97,8 @@ public static CompileResult generate(
9697
File javaFileExeT = new File(dirTraduzione + File.separator + name + "_Exe.java");
9798
File javaFileASMT = new File(dirTraduzione + File.separator + name + "_ASM.java");
9899

100+
File parserSupport = new File(dir.getPath() + File.separator + "parserSupport" + ".txt");
101+
99102
deleteExisting(javaFile);
100103
deleteExisting(javaFileCompilazione);
101104
deleteExisting(javaFileExe);
@@ -105,6 +108,7 @@ public static CompileResult generate(
105108
deleteExisting(javaFileASMT);
106109
deleteExisting(javaFileT);
107110
deleteExisting(javaFileExeT);
111+
deleteExisting(parserSupport);
108112

109113
System.out.println("\n\n===" + name + " ===================");
110114

@@ -127,6 +131,15 @@ public static CompileResult generate(
127131
jGenerator.compileAndWrite(model.getMain(), javaFileASMN.getCanonicalPath(), userOptions);
128132
jGeneratorASM.compileAndWrite(model.getMain(), javaFileASMT.getCanonicalPath(), userOptions);
129133

134+
// Parser support
135+
StringBuffer stepArgs = new StringBuffer();
136+
jGeneratorASM.setMonitoredArgs(model.getMain(), stepArgs);
137+
FileWriter fileWriter = new FileWriter(parserSupport);
138+
fileWriter.write(stepArgs.toString().
139+
replaceAll("\t","").
140+
replaceFirst(" " + System.lineSeparator(),""));
141+
fileWriter.close();
142+
130143
} catch (Exception e) {
131144
e.printStackTrace();
132145
return new CompileResult(false, e.getMessage());
@@ -136,6 +149,7 @@ public static CompileResult generate(
136149
System.out.println("Generated java file: " + javaFileCompilazione.getCanonicalPath());
137150
System.out.println("Generated java file: " + javaFileExeN.getCanonicalPath());
138151
System.out.println("Generated ASM java file: " + javaFileASMN.getCanonicalPath());
152+
System.out.println("Generated parser support file: " + parserSupport.getCanonicalPath());
139153

140154
System.out.println("Generated java file for the execution: " + javaFileExe.getCanonicalPath());
141155

@@ -144,7 +158,7 @@ public static CompileResult generate(
144158
exportFile(javaFile, outputFolder);
145159
exportFile(javaFileExe, outputFolder);
146160
exportFile(javaFileASM, outputFolder);
147-
161+
exportFile(parserSupport, outputFolder);
148162

149163
CompileResult result = CompilatoreJava.compile(name + ".java", dir, true);
150164

0 commit comments

Comments
 (0)