modify print
This commit is contained in:
@@ -82,15 +82,15 @@ instruction returns [Instruction out]:
|
||||
{$out = new DeclarationImp($t.return_type, declare);}
|
||||
| // PRINT
|
||||
PRINT
|
||||
{ArrayList<String> printer= new ArrayList<String>();}
|
||||
{ArrayList<Object> printer= new ArrayList<Object>();}
|
||||
(t1=TEXT
|
||||
{
|
||||
String text= $t1.getText();
|
||||
printer.add(text.substring(1,text.length()-1));
|
||||
}
|
||||
|e1=expression
|
||||
{ String text_e= $e1.out.toString();
|
||||
printer.add(text_e);
|
||||
{
|
||||
printer.add($e1.out);
|
||||
})
|
||||
(VIRGULE (t2=TEXT
|
||||
{
|
||||
@@ -99,19 +99,18 @@ instruction returns [Instruction out]:
|
||||
}
|
||||
| e2=expression
|
||||
{
|
||||
String text_e2= $e2.out.toString();
|
||||
printer.add(text_e2);
|
||||
printer.add($e2.out);
|
||||
}
|
||||
))*
|
||||
{$out = new PrintImp(printer);}
|
||||
| //READ
|
||||
READ i1=ident
|
||||
{
|
||||
ArrayList<String> read= new ArrayList<String>();
|
||||
read.add($i1.out);
|
||||
ArrayList<VarImp> read= new ArrayList<VarImp>();
|
||||
read.add(new VarImp($i1.out));
|
||||
}(VIRGULE i2=ident
|
||||
{
|
||||
read.add($i2.out);
|
||||
read.add(new VarImp($i1.out));
|
||||
})*
|
||||
{$out = new ReadImp(read);}
|
||||
|
||||
|
||||
@@ -74,14 +74,14 @@ public class Program{
|
||||
}
|
||||
}
|
||||
|
||||
public static record PrintImp(ArrayList<String> t) implements Instruction{
|
||||
public static record PrintImp(ArrayList<Object> t) implements Instruction{
|
||||
@Override
|
||||
public <H, S> S accept(InstrVisitor<H, S> v, H h) {
|
||||
return v.visitPrint(this, h);
|
||||
}
|
||||
}
|
||||
|
||||
public static record ReadImp(ArrayList<String> t) implements Instruction{
|
||||
public static record ReadImp(ArrayList<VarImp> t) implements Instruction{
|
||||
@Override
|
||||
public <H, S> S accept(InstrVisitor<H, S> v, H h) {
|
||||
return v.visitRead(this, h);
|
||||
|
||||
@@ -31,6 +31,7 @@ public class SymTable {
|
||||
stackMap.minus(stackMap.indexOf(stackMap.getLast()));
|
||||
}
|
||||
public PMap<String,Type> peppapeek(){
|
||||
System.out.print("TEST0");
|
||||
return stackMap.getLast();
|
||||
}
|
||||
|
||||
@@ -40,6 +41,7 @@ public class SymTable {
|
||||
pmap= pmap.plus(s/*+"_"+this.id*/,t);
|
||||
//this.id++;
|
||||
//Delete old ones
|
||||
System.out.print("TEST1");
|
||||
stackMap.minus(stackMap.indexOf(stackMap.getLast()));
|
||||
//Push the new one
|
||||
stackMap.plus(pmap);
|
||||
|
||||
Reference in New Issue
Block a user