From dbd7715193158898901ea48bb685edce0d11c047 Mon Sep 17 00:00:00 2001 From: Martin Date: Sun, 12 Oct 2025 01:41:37 +0200 Subject: [PATCH] FOR --- Program.cs | 61 +++++++++++++++++- bin/Debug/net8.0/Compiler.dll | Bin 15360 -> 16896 bytes bin/Debug/net8.0/Compiler.pdb | Bin 15196 -> 15720 bytes input.st | 6 ++ obj/Debug/net8.0/Compiler.AssemblyInfo.cs | 2 +- .../net8.0/Compiler.AssemblyInfoInputs.cache | 2 +- obj/Debug/net8.0/Compiler.dll | Bin 15360 -> 16896 bytes obj/Debug/net8.0/Compiler.pdb | Bin 15196 -> 15720 bytes obj/Debug/net8.0/ref/Compiler.dll | Bin 7680 -> 7680 bytes obj/Debug/net8.0/refint/Compiler.dll | Bin 7680 -> 7680 bytes out.bin | Bin 55 -> 118 bytes 11 files changed, 68 insertions(+), 3 deletions(-) diff --git a/Program.cs b/Program.cs index 9f30372..a39a728 100644 --- a/Program.cs +++ b/Program.cs @@ -3,6 +3,7 @@ using System.IO; using System.Text; using System.Collections.Generic; +// === ENTRY POINT === class Program { static int Main(string[] args) { if (args.Length < 2) { @@ -31,6 +32,7 @@ public abstract class Stmt:StNode{} public class AssignStmt:Stmt{ public string Target; public Expr Expr; } public class IfStmt:Stmt{ public Expr Cond; public List ThenStmts=new(); public List ElseStmts=new(); } public class WhileStmt:Stmt{ public Expr Cond; public List Body=new(); } +public class ForStmt:Stmt{ public string Var; public Expr Start, End, Step = new IntExpr(1); public List Body=new(); } public abstract class Expr:StNode{} public class IntExpr:Expr{ public int Value; public IntExpr(int v){Value=v;} } @@ -44,6 +46,7 @@ public enum TokType { LT, GT, LE, GE, EQ, NEQ, IF, THEN, ELSE, END_IF, WHILE, DO, END_WHILE, + FOR, TO, BY, END_FOR, PROGRAM, VAR, END_VAR, END_PROGRAM, EOF } @@ -75,6 +78,10 @@ public class StLexer { "WHILE"=>new Token(TokType.WHILE,s), "DO"=>new Token(TokType.DO,s), "END_WHILE"=>new Token(TokType.END_WHILE,s), + "FOR"=>new Token(TokType.FOR,s), + "TO"=>new Token(TokType.TO,s), + "BY"=>new Token(TokType.BY,s), + "END_FOR"=>new Token(TokType.END_FOR,s), _=>new Token(TokType.IDENT,s) }; } @@ -151,6 +158,7 @@ public class StParser { Stmt ParseStmt(){ if(cur.Type==TokType.IF) return ParseIf(); if(cur.Type==TokType.WHILE) return ParseWhile(); + if(cur.Type==TokType.FOR) return ParseFor(); if(cur.Type==TokType.IDENT){ var n=cur.Text; Next(); Expect(TokType.ASSIGN); var e=ParseExpr(); Expect(TokType.SEMI); @@ -184,6 +192,26 @@ public class StParser { return ws; } + ForStmt ParseFor(){ + Next(); // FOR + string varName = cur.Text; Expect(TokType.IDENT); + Expect(TokType.ASSIGN); + Expr start = ParseExpr(); + Expect(TokType.TO); + Expr end = ParseExpr(); + Expr step = new IntExpr(1); + if(cur.Type==TokType.BY){ + Next(); + step = ParseExpr(); + } + Expect(TokType.DO); + var fs = new ForStmt{Var=varName, Start=start, End=end, Step=step}; + while(cur.Type!=TokType.END_FOR) + fs.Body.Add(ParseStmt()); + Expect(TokType.END_FOR); Expect(TokType.SEMI); + return fs; + } + Expr ParseExpr()=>ParseCompare(); Expr ParseCompare(){ var l=ParseAddSub(); @@ -233,7 +261,7 @@ public class BytecodeEmitter { foreach(var s in p.Stmts) EmitStmt(s); - EmitByte(0xF0); + EmitByte(0xF0); // Program End } void EmitStmt(Stmt s){ @@ -264,6 +292,37 @@ public class BytecodeEmitter { PatchJump(jzpos,code.Count); break; + case ForStmt f: + // Initialisierung: var := start + EmitExpr(f.Start); + EmitByte(0x03); EmitU16((ushort)syms[f.Var].Index); + + int cmpPos = code.Count; // Position des Vergleichs + EmitExpr(new VarExpr(f.Var)); + EmitExpr(f.End); + EmitByte(0x16); // LE + EmitByte(0x20); int jzFor = code.Count; EmitU16(0); // Jump zum Ende + + // Body + foreach(var st in f.Body) EmitStmt(st); + + // Inkrement: i := i + step + EmitExpr(new VarExpr(f.Var)); + EmitExpr(f.Step); + EmitByte(0x10); // PLUS + EmitByte(0x03); EmitU16((ushort)syms[f.Var].Index); + + // Vergleich erneut, aber wir merken uns den Sprung zum Vergleich + EmitByte(0x21); EmitU16((ushort)cmpPos); + + // Patch Jump: Ende der Schleife springt hierhin + PatchJump(jzFor, code.Count); + + // Korrektur: Schleifenvariable auf Endwert, falls sie überläuft + EmitExpr(f.End); + EmitByte(0x03); EmitU16((ushort)syms[f.Var].Index); + break; + default: throw new Exception($"Unknown stmt {s.GetType().Name}"); } } diff --git a/bin/Debug/net8.0/Compiler.dll b/bin/Debug/net8.0/Compiler.dll index c06363972a1f77bae03b7f6131882b031de827aa..1561c98eb114f356649ae3fb4a3fd0b106cc8680 100644 GIT binary patch literal 16896 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 NsrbKi{r}*B{|iQ!z4HJ7 literal 15360 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 diff --git a/bin/Debug/net8.0/Compiler.pdb b/bin/Debug/net8.0/Compiler.pdb index 94e808a8a0e2118deb92af776041f6dc23031e43..313a9e870f7142204d48423abbb6f6fabc6cdc7b 100644 GIT binary patch delta 3012 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 C6hMOj diff --git a/input.st b/input.st index 0ff21a2..6d064e5 100644 --- a/input.st +++ b/input.st @@ -1,10 +1,16 @@ PROGRAM Demo VAR a int16 := 0; + b int16 := 0; + i int16 := 0; END_VAR WHILE a < 5 DO a := a + 1; END_WHILE; +FOR i := 1 TO 10 DO + b := b + i; +END_FOR; + END_PROGRAM diff --git a/obj/Debug/net8.0/Compiler.AssemblyInfo.cs b/obj/Debug/net8.0/Compiler.AssemblyInfo.cs index 712a669..837a151 100644 --- a/obj/Debug/net8.0/Compiler.AssemblyInfo.cs +++ b/obj/Debug/net8.0/Compiler.AssemblyInfo.cs @@ -13,7 +13,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Compiler")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+384f9c719795a70259bf409ac57d221baf7a89b1")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+f6aef1f0d176c5c9d337f8595797f1eb1e58a56b")] [assembly: System.Reflection.AssemblyProductAttribute("Compiler")] [assembly: System.Reflection.AssemblyTitleAttribute("Compiler")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/obj/Debug/net8.0/Compiler.AssemblyInfoInputs.cache b/obj/Debug/net8.0/Compiler.AssemblyInfoInputs.cache index 1530cbc..a361074 100644 --- a/obj/Debug/net8.0/Compiler.AssemblyInfoInputs.cache +++ b/obj/Debug/net8.0/Compiler.AssemblyInfoInputs.cache @@ -1 +1 @@ -42e892e3dd3396a02f45555f279acee4d0083d66ab01ce9b1baf7c02d466a01c +b797b871506999fe8d363a1f65cdb2c12ea0f8c34caff9806f36efedbe800822 diff --git a/obj/Debug/net8.0/Compiler.dll b/obj/Debug/net8.0/Compiler.dll index c06363972a1f77bae03b7f6131882b031de827aa..1561c98eb114f356649ae3fb4a3fd0b106cc8680 100644 GIT binary patch literal 16896 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 NsrbKi{r}*B{|iQ!z4HJ7 literal 15360 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 diff --git a/obj/Debug/net8.0/Compiler.pdb b/obj/Debug/net8.0/Compiler.pdb index 94e808a8a0e2118deb92af776041f6dc23031e43..313a9e870f7142204d48423abbb6f6fabc6cdc7b 100644 GIT binary patch delta 3012 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 C6hMOj diff --git a/obj/Debug/net8.0/ref/Compiler.dll b/obj/Debug/net8.0/ref/Compiler.dll index 2ce2e2a055961bdced73bd5afcaf67fb090315bd..bd097f285176bdf11c7c0c9d0bb08b7788421ad8 100644 GIT binary patch delta 2371 zcmZvedu&ui6vn@qd%Iow*zWcf`T$y1pa|kFrQNPAu+WDfl|l=RMHA=~NMk{$34fql zfj~*nw7CQ^n1CXIGzJXSs0kWleMQ9x0Rvi$fFz)%fH8pK5B=s)`Uvc1e)s#%nK^gv z?9A?VlysDIb=svRhi-T8%GQrob@$Y&bBabjB)rM*6c`FGAEE5k&q+0FPE>vs9>``UdD(n=-NW56|NvZRT^(XuP ztqsRZg{h3kLE*UE&&-C;8D+ps{IUkZ)O<6L$Tpi=;}zyEu}2uObc*gL=^qPA+$S98 z#TYJw>6ysY@FIZ=X?p(0>1Wfq#N83+VI7kj5a&bGEjEq=vys9=rpy{9y%@{YGF?~D z1?b|%Rg24DS(9rJmx)A~c8pAW99P)n?#d(08FXdr8Ab$2lAAW@eCGMRm^Elq_*7n; zmVps|U@lh=`cT`EimynI&@J4lP2@c3!sphv5nZ8Lbhbe(CNPA8>nx(vIQeNFcE3+D>! zgsX&|!dHc5QMnux?h!h|>B5P^7lrM@BH=ROHmvv3ol zX1)u=6q9D@42x{DXd@SMuHA1 z;i-9fPKMnT?xAS~19{{& zJVth6Cb&6XyO#XvUF$Ikn zP&4@Dl|rTF0X}rlE{FA6v*`bdjalM=rt&Z*1Q6h~J=@Z>2`m*TDqW#*`^lMYIRCKA)QPn7>Q4(84Zxwxz z`l?cHbNf{875?V4Z&q2p`X zo7ZFAdeqi$aQ^UKvntkYaDMPjvTNEIxaphx!2bd#FZr0y&gRYRaR%cJCOBu3bFu=K z%NH4wW2xkTFOnQ^Plwn5$=|5DmSnGv3mA`dso A!vFvP delta 2188 zcma);e{2**6vw|ad)*$TT<@+|q)?L91KWm*x24VXq)18mDN>5inkori4~u{)2q>b( ztB6t~F>SUnBvyj~qd}4qPm!pBCNxqB5C~0(8h-|(7!p*BiNT29d7NCUf9P%Iv+w)n z&D)vTx4YL_+gaP)uBK>4T&w*xD<|Omxh1;7ZBa{gr!RFtHEaLL zUw?Qtf9RLHJ2(7%-{h@>@l?QbMNPy?2AkhPHjON-r~{6S0~8ZP-A21?)|6}@{4~(b zbHqb?`Ib#<+t+M1qXxzTbRpcd9D}s|#$M30XfDsg)EC|N>}iD|su@qr647-G_cO zcZTo|=@WW|Teb0=AZ@&99VS1pj*?&DWAabN*f?W-LY}aUXNlOyU_6H<@}TgBr^sW* zcIae3Pd8G`m(Zt#$~t{>Dlg$QFWf6!Bb+U45k4r~F5DrUE8HV|QP?G{5Z)@>BzzR7 zlT2MBVukPyVU@64*e;wZyhpfA_?U2^a3*Q?z%b8aRzGrA#(VnFSjRhs=O;KUZk1L$ zsgfBvx^uKLq5m)Pzs8vo&rHUjWL0P6IaWhPea>}clpo%|6~5EovQ$U*-BdWGzh~j5 z`@DZxmq(~8qg0>1jO5KwT)g!VTg>FeL2M@vVF&pxc9BPtOyb2y=phI2GC7D>$RQ5*;uPK>&*A_|k-%qa zI(PIsrt>}Hr9BCyWSGZvOhbhB478Io(LvT@7r7X{kO43V2LtSq%2$swMM zC?SVbm@Y%(sTaFm>^ONw?Gw*F@f;WXxY(99qbzMkg~bkwT`zXM*a@){Vn0iJSbbyj zinpnJ-gW*w<^_J$GTf`Lu?B*y3C)#eks&wWD{!(|63!!Y)ED?2L(O7jn8mX*~wYF77V(~uu(^&e(N5CFAwVhLkSIRc=HdO8Lg;SW9Q1232Td zRVP@1j(ikis79PB!pf|sryEqRFGNoy F`!B)1jnx1E diff --git a/obj/Debug/net8.0/refint/Compiler.dll b/obj/Debug/net8.0/refint/Compiler.dll index 2ce2e2a055961bdced73bd5afcaf67fb090315bd..bd097f285176bdf11c7c0c9d0bb08b7788421ad8 100644 GIT binary patch delta 2371 zcmZvedu&ui6vn@qd%Iow*zWcf`T$y1pa|kFrQNPAu+WDfl|l=RMHA=~NMk{$34fql zfj~*nw7CQ^n1CXIGzJXSs0kWleMQ9x0Rvi$fFz)%fH8pK5B=s)`Uvc1e)s#%nK^gv z?9A?VlysDIb=svRhi-T8%GQrob@$Y&bBabjB)rM*6c`FGAEE5k&q+0FPE>vs9>``UdD(n=-NW56|NvZRT^(XuP ztqsRZg{h3kLE*UE&&-C;8D+ps{IUkZ)O<6L$Tpi=;}zyEu}2uObc*gL=^qPA+$S98 z#TYJw>6ysY@FIZ=X?p(0>1Wfq#N83+VI7kj5a&bGEjEq=vys9=rpy{9y%@{YGF?~D z1?b|%Rg24DS(9rJmx)A~c8pAW99P)n?#d(08FXdr8Ab$2lAAW@eCGMRm^Elq_*7n; zmVps|U@lh=`cT`EimynI&@J4lP2@c3!sphv5nZ8Lbhbe(CNPA8>nx(vIQeNFcE3+D>! zgsX&|!dHc5QMnux?h!h|>B5P^7lrM@BH=ROHmvv3ol zX1)u=6q9D@42x{DXd@SMuHA1 z;i-9fPKMnT?xAS~19{{& zJVth6Cb&6XyO#XvUF$Ikn zP&4@Dl|rTF0X}rlE{FA6v*`bdjalM=rt&Z*1Q6h~J=@Z>2`m*TDqW#*`^lMYIRCKA)QPn7>Q4(84Zxwxz z`l?cHbNf{875?V4Z&q2p`X zo7ZFAdeqi$aQ^UKvntkYaDMPjvTNEIxaphx!2bd#FZr0y&gRYRaR%cJCOBu3bFu=K z%NH4wW2xkTFOnQ^Plwn5$=|5DmSnGv3mA`dso A!vFvP delta 2188 zcma);e{2**6vw|ad)*$TT<@+|q)?L91KWm*x24VXq)18mDN>5inkori4~u{)2q>b( ztB6t~F>SUnBvyj~qd}4qPm!pBCNxqB5C~0(8h-|(7!p*BiNT29d7NCUf9P%Iv+w)n z&D)vTx4YL_+gaP)uBK>4T&w*xD<|Omxh1;7ZBa{gr!RFtHEaLL zUw?Qtf9RLHJ2(7%-{h@>@l?QbMNPy?2AkhPHjON-r~{6S0~8ZP-A21?)|6}@{4~(b zbHqb?`Ib#<+t+M1qXxzTbRpcd9D}s|#$M30XfDsg)EC|N>}iD|su@qr647-G_cO zcZTo|=@WW|Teb0=AZ@&99VS1pj*?&DWAabN*f?W-LY}aUXNlOyU_6H<@}TgBr^sW* zcIae3Pd8G`m(Zt#$~t{>Dlg$QFWf6!Bb+U45k4r~F5DrUE8HV|QP?G{5Z)@>BzzR7 zlT2MBVukPyVU@64*e;wZyhpfA_?U2^a3*Q?z%b8aRzGrA#(VnFSjRhs=O;KUZk1L$ zsgfBvx^uKLq5m)Pzs8vo&rHUjWL0P6IaWhPea>}clpo%|6~5EovQ$U*-BdWGzh~j5 z`@DZxmq(~8qg0>1jO5KwT)g!VTg>FeL2M@vVF&pxc9BPtOyb2y=phI2GC7D>$RQ5*;uPK>&*A_|k-%qa zI(PIsrt>}Hr9BCyWSGZvOhbhB478Io(LvT@7r7X{kO43V2LtSq%2$swMM zC?SVbm@Y%(sTaFm>^ONw?Gw*F@f;WXxY(99qbzMkg~bkwT`zXM*a@){Vn0iJSbbyj zinpnJ-gW*w<^_J$GTf`Lu?B*y3C)#eks&wWD{!(|63!!Y)ED?2L(O7jn8mX*~wYF77V(~uu(^&e(N5CFAwVhLkSIRc=HdO8Lg;SW9Q1232Td zRVP@1j(ikis79PB!pf|sryEqRFGNoy F`!B)1jnx1E diff --git a/out.bin b/out.bin index 02dcef77197f16a3fba6c7d0c7c7601a45a44761..e1d75f7fac1c6509c022e0bda5435c4b714723b1 100644 GIT binary patch literal 118 zcmW-Y!3lss5CfB}etaDwzVDvC>_Hn46zsnPOE7y2ftiH8pW`G32|rVv1}G9{^2h0^k4u