-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPrograma.java
More file actions
69 lines (60 loc) · 1.92 KB
/
Programa.java
File metadata and controls
69 lines (60 loc) · 1.92 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import java.util.ArrayList;
import java.util.HashMap;
public class Programa{
public static HashMap<String,Integer> varList;
public static ArrayList<Comando> comandos;
public Programa(){
varList = new HashMap<String,Integer>();
comandos = new ArrayList<Comando>();
}
public static void addVariable(String var){
varList.put(var,0);
}
public static void addCommand(Comando cmd){
comandos.add(cmd);
}
public static void setVariableValue(String var, Integer value){
if (varList.get(var) != null){
varList.put(var, value);
}
}
public static Integer getVarValue(String var){
return varList.get(var);
}
public void run(){
for (Comando c: comandos){
c.run();
}
}
public String writeCode(){
StringBuilder str = new StringBuilder();
str.append("<program>\n");
str.append("<variableList>\n");
for (Object var: varList.values().toArray()){
str.append("<var id=").append(var).append("/>\n");
}
str.append("</variableList>\n");
str.append("<commands>");
for (Comando cmd: comandos){
str.append(cmd.writeCode());
}
str.append("</commands>\n");
str.append("</program>");
return str.toString();
}
public String writeJava(){
StringBuilder str = new StringBuilder();
str.append("public class Teste{\n");
str.append(" public static void main(String args[]){\n");
str.append(" java.util.Scanner teclado = new java.util.Scanner(System.in);\n");
for (String var: varList.keySet()){
str.append("int "+var+";\n");
}
for (Comando c: comandos){
str.append(c.writeJava());
}
str.append("}\n");
str.append("}\n");
return str.toString();
}
}