From 6038241a1b48b5f95c9cc764de3ff32f69292b78 Mon Sep 17 00:00:00 2001 From: Ur Mom Date: Mon, 6 May 2024 12:00:03 +0200 Subject: [PATCH 1/6] initial commit for adding Module Import --- src/yacc/parser.y | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/yacc/parser.y b/src/yacc/parser.y index d6226e4..b052fbf 100644 --- a/src/yacc/parser.y +++ b/src/yacc/parser.y @@ -83,6 +83,8 @@ funcall: Ident paramlist { DEBUG("Function call"); }; assign: Ident '=' expr { DEBUG("Assignment"); }; +moduleimport: KeyImport '"filename"' { DEBUG("Module-Import"); }; + statementlist: statementlist statement | ; From 4ee6be3eb85775d3ff6312ad6aadacd563eb6a9e Mon Sep 17 00:00:00 2001 From: Ur Mom Date: Mon, 6 May 2024 12:09:58 +0200 Subject: [PATCH 2/6] Changed Key for Function name --- src/yacc/parser.y | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/yacc/parser.y b/src/yacc/parser.y index b052fbf..9302ec8 100644 --- a/src/yacc/parser.y +++ b/src/yacc/parser.y @@ -83,7 +83,7 @@ funcall: Ident paramlist { DEBUG("Function call"); }; assign: Ident '=' expr { DEBUG("Assignment"); }; -moduleimport: KeyImport '"filename"' { DEBUG("Module-Import"); }; +moduleimport: KeyImport FunFilename { DEBUG("Module-Import"); }; statementlist: statementlist statement | ; From 5d155416b4c4fdf3dff1cd516bff1bb58b7a3f93 Mon Sep 17 00:00:00 2001 From: Filleo Date: Mon, 6 May 2024 14:13:43 +0200 Subject: [PATCH 3/6] added while parser rule --- src/yacc/parser.y | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/yacc/parser.y b/src/yacc/parser.y index d6226e4..82e0827 100644 --- a/src/yacc/parser.y +++ b/src/yacc/parser.y @@ -89,6 +89,7 @@ statementlist: statementlist statement statement: assign | decl | definition + | while | branch; branchif: KeyIf expr '{' statementlist '}' { DEBUG("if"); }; @@ -101,6 +102,8 @@ branchelseifs: branchelseifs branchelseif branch: branchif branchelseifs | branchif branchelseifs branchelse; +while: KeyWhile expr '{' statementlist '}' { DEBUG("while"); }; + identlist: Ident ',' identlist | Ident | ; From 08943e3e6eacdbc8a843edf6eef6a58eae172066 Mon Sep 17 00:00:00 2001 From: Filleo Date: Mon, 6 May 2024 22:14:42 +0200 Subject: [PATCH 4/6] added function parser rules --- src/yacc/parser.y | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/src/yacc/parser.y b/src/yacc/parser.y index d6226e4..34d9ba2 100644 --- a/src/yacc/parser.y +++ b/src/yacc/parser.y @@ -63,7 +63,8 @@ %left OpBitand OpBitor OpBitxor OpBitnot %% -program: statementlist; +program: statementlist + | fundef; expr: ValFloat | ValInt @@ -76,10 +77,35 @@ exprlist: expr ',' exprlist | expr | ; -paramlist: paramlist '(' exprlist ')' +argumentlist: argumentlist '(' exprlist ')' | ; -funcall: Ident paramlist { DEBUG("Function call"); }; +fundef: KeyFun Ident paramlist '{' statementlist'}' { DEBUG("Function");}; + +paramlist: paramlist '(' params ')' + | paramlist '(' ')' + | '(' params ')' + | '(' ')'; + +params: IOqualifyier paramdecl ',' params + | IOqualifyier paramdecl; + +IOqualifyier: KeyIn + | KeyOut + | KeyIn KeyOut + | KeyOut KeyIn + | ; + +paramdecl: type ':' Ident { DEBUG("Param-Declaration"); }; + + + + + + + + +funcall: Ident argumentlist { DEBUG("Function call"); }; assign: Ident '=' expr { DEBUG("Assignment"); }; @@ -102,8 +128,7 @@ branch: branchif branchelseifs | branchif branchelseifs branchelse; identlist: Ident ',' identlist - | Ident - | ; + | Ident; decl: type ':' identlist { DEBUG("Declaration"); }; From 198c27f67672d698acc7cd1af72c28027dde5b97 Mon Sep 17 00:00:00 2001 From: Ur Mom Date: Tue, 7 May 2024 10:07:00 +0200 Subject: [PATCH 5/6] changed moduleimport in parser --- src/yacc/parser.y | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/yacc/parser.y b/src/yacc/parser.y index 9302ec8..d33f562 100644 --- a/src/yacc/parser.y +++ b/src/yacc/parser.y @@ -83,7 +83,7 @@ funcall: Ident paramlist { DEBUG("Function call"); }; assign: Ident '=' expr { DEBUG("Assignment"); }; -moduleimport: KeyImport FunFilename { DEBUG("Module-Import"); }; +moduleimport: KeyImport ValStr { DEBUG("Module-Import"); }; statementlist: statementlist statement | ; From b8723bf83ce7ecec32c4771417ab41b21672c81c Mon Sep 17 00:00:00 2001 From: Filleo Date: Wed, 8 May 2024 13:18:34 +0200 Subject: [PATCH 6/6] removed empty lines --- src/yacc/parser.y | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/yacc/parser.y b/src/yacc/parser.y index cd40dc2..21e97b8 100644 --- a/src/yacc/parser.y +++ b/src/yacc/parser.y @@ -98,13 +98,6 @@ IOqualifyier: KeyIn paramdecl: type ':' Ident { DEBUG("Param-Declaration"); }; - - - - - - - funcall: Ident argumentlist { DEBUG("Function call"); }; statementlist: statement statementlist