X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=mjc2wsl.git;a=blobdiff_plain;f=src%2Fcom%2Fquemaster%2Ftransformations%2Fmjc2wsl%2Fmjc2wsl.java;h=dab321badf704a53d08d339ecca5788f68531e5e;hp=c890fefed757c443c72e6ae48d3ac3ba5f1fcad5;hb=3b1f56b927d0338469b2cf17225b8b0d54c61463;hpb=fa49662f7c1f1ff9104e73b987d5115c1ab85a25 diff --git a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java index c890fef..dab321b 100644 --- a/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java +++ b/src/com/quemaster/transformations/mjc2wsl/mjc2wsl.java @@ -40,7 +40,7 @@ import com.quemaster.transformations.TransMessages; */ public class mjc2wsl{ //default version name, used if the file is not found - private static String versionN = "0.1.x"; + private static String versionN = "0.2.x"; private String versionFile = "/version.properties"; @@ -211,17 +211,12 @@ public class mjc2wsl{ if (!genInlinePrint) { ret.append("\nPROC Print_MJ(val, format VAR)==\n"); - ret.append(createComment("print spacing", C_SPEC)); - ret.append("\n\tIF format>1 THEN\n\t\tFOR i:=1 TO "); - ret.append("MAX(0, format-SLENGTH(@String(tempb))) STEP 1 DO PRINFLUSH(\" \") OD\n"); - ret.append("\tFI;\n\tPRINFLUSH(val)\nEND\n"); + ret.append("PRINFLUSH(@Format(format, val ))"); + ret.append("\nEND\n"); ret.append("\nPROC Print_MJ_CHAR(val, format VAR)==\n"); - ret.append(createComment("print spacing", C_SPEC)); - ret.append("\n\tIF format>1 THEN\n\t\tFOR i:=2 TO "); - ret.append("format STEP 1 DO PRINFLUSH(\" \") OD\n"); - ret.append("\tFI;\n\tPRINFLUSH(CHR(val))\n"); - ret.append("END\n"); + ret.append("PRINFLUSH(@Format(format, CHR(val)))"); + ret.append("\nEND\n"); } ret.append("\nEND"); @@ -653,9 +648,13 @@ public class mjc2wsl{ // read, print case bread: { - // TODO make it a char for read - messages.message("char is read like a number", TransMessages.M_WAR); - prl(createComment("char is read like a number", C_SPEC)); + // TODO maybe we'll need a bufer for multi chars! + prl(createStartVar("tempa")); + prl("@Read_Line_Proc(VAR tempa, Standard_Input_Port);"); + prl("tempa := @String_To_List(tempa)[1];"); + prl(createToEStack("tempa")); + prl(createEndVar()); + break; } case read: { prl(createStartVar("tempa")); @@ -672,7 +671,7 @@ public class mjc2wsl{ prl(createTopTwoEStack()); if (genInlinePrint){ prl(createComment("print spacing and transformation",C_SPEC)); - prl("PRINFLUSH(SUBSTR(\" \", 0, MIN(10, MAX(0,tempa-1))), @List_To_String(< tempb >));"); + prl("PRINFLUSH(@Format(tempa, @List_To_String(< tempb >)));"); } else prl("Print_MJ_CHAR(tempb,tempa);"); prl(createEndVar()); @@ -684,7 +683,7 @@ public class mjc2wsl{ prl(createTopTwoEStack()); if (genInlinePrint){ prl(createComment("print spacing",C_SPEC)); - prl("PRINFLUSH(SUBSTR(\" \", 0, MIN(10, MAX(0, tempa-SLENGTH(@String(tempb))))), tempb);"); + prl("PRINFLUSH(@Format(tempa,tempb));"); } else prl("Print_MJ(tempb,tempa);");