]> ocean-lang.org Git - ocean/blobdiff - csrc/oceani.mdc
parsergen: remove line_like information.
[ocean] / csrc / oceani.mdc
index e02057f31a27f9f01fdfa5d27ed2533d1cc9645f..0e6cebeb30b511853746129d4ebd3dcfa8522852 100644 (file)
@@ -151,8 +151,8 @@ structures can be used.
        ## core functions
 
        #include <getopt.h>
-       static char Usage[] = "Usage: oceani --trace --print --noexec --brackets"
-                             "--section=SectionName prog.ocn\n";
+       static char Usage[] =
+               "Usage: oceani --trace --print --noexec --brackets --section=SectionName prog.ocn\n";
        static const struct option long_options[] = {
                {"trace",     0, NULL, 't'},
                {"print",     0, NULL, 'p'},
@@ -171,9 +171,7 @@ structures can be used.
                char *section = NULL;
                struct parse_context context = {
                        .config = {
-                               .ignored = (1 << TK_line_comment)
-                                        | (1 << TK_block_comment)
-                                        | (1 << TK_mark),
+                               .ignored = (1 << TK_mark),
                                .number_chars = ".,_+- ",
                                .word_start = "_",
                                .word_cont = "_",
@@ -633,8 +631,8 @@ there are errors.
 
 ###### includes
        #include <gmp.h>
-       #include "string.h"
-       #include "number.h"
+       #include "parse_string.h"
+       #include "parse_number.h"
 
 ###### libs
        myLDLIBS := libnumber.o libstring.o -lgmp
@@ -2031,7 +2029,7 @@ function will be needed.
        $*fieldlist
        FieldBlock -> Open FieldList } ${ $0 = $<2; }$
                | Open SimpleFieldList } ${ $0 = $<2; }$
-               | : FieldList $$NEWLINE ${ $0 = $<2; }$
+               | : FieldList ${ $0 = $<2; }$
 
        FieldList -> FieldLines ${ $0 = $<1; }$
                | Newlines FieldLines ${ $0 = $<2; }$
@@ -3060,7 +3058,7 @@ is in-place.
        Block -> Open Statementlist Close ${ $0 = $<2; }$
                | Open SimpleStatements } ${ $0 = reorder_bilist($<2); }$
                | : SimpleStatements ${ $0 = reorder_bilist($<2); }$
-               | : Statementlist $$OUT ${ $0 = $<2; }$
+               | : Statementlist ${ $0 = $<2; }$
 
        Statementlist -> ComplexStatements ${ $0 = reorder_bilist($<1); }$
                | Newlines ComplexStatements ${ $0 = reorder_bilist($<2); }$
@@ -3565,7 +3563,7 @@ defined.
        case Xcond_statement: free_cond_statement(cast(cond_statement, e)); break;
 
 ###### ComplexStatement Grammar
-       | CondStatement $$NEWLINE ${ $0 = $<1; }$
+       | CondStatement ${ $0 = $<1; }$
 
 ###### Grammar
 
@@ -3636,6 +3634,11 @@ defined.
                        $0->elsepart = $<3;
                        var_block_close(c, CloseElse);
                }$
+               | else OpenScope SimpleStatements NEWLINE ${
+                       $0 = new(cond_statement);
+                       $0->elsepart = reorder_bilist($<3);
+                       var_block_close(c, CloseElse);
+               }$
                | else OpenScope CondStatement ${
                        $0 = new(cond_statement);
                        $0->elsepart = $<3;
@@ -3693,6 +3696,24 @@ defined.
                        $0.thenpart = $<5;
                        var_block_close(c, CloseParallel);
                }$
+               | if OpenScope Expression OpenScope then Block ${
+                       $0.type = Xcond_statement;
+                       $0.condpart = $<3;
+                       $0.thenpart = $<6;
+                       var_block_close(c, CloseParallel);
+               }$
+               | if OpenScope Expression OpenScope then SimpleStatements ; ${
+                       $0.type = Xcond_statement;
+                       $0.condpart = $<3;
+                       $0.thenpart = reorder_bilist($<6);
+                       var_block_close(c, CloseParallel);
+               }$
+               | if OpenScope Expression OpenScope then SimpleStatements NEWLINE ${
+                       $0.type = Xcond_statement;
+                       $0.condpart = $<3;
+                       $0.thenpart = reorder_bilist($<6);
+                       var_block_close(c, CloseParallel);
+               }$
                | if OpenScope Block then OpenScope Block ${
                        $0.type = Xcond_statement;
                        $0.condpart = $<3;
@@ -3990,7 +4011,7 @@ searching through for the Nth constant for decreasing N.
 
        DeclareConstant -> const Open ConstList Close
                | const Open SimpleConstList }
-               | const : ConstList $$NEWLINE
+               | const : ConstList
                | const SimpleConstList NEWLINE
 
        ConstList -> ConstLines
@@ -4333,7 +4354,7 @@ things which will likely grow as the languages grows.
                        print "", list[i],
                print
 
-               if 1 == 2: print "yes" else: print "no"
+               if 1 == 2 then print "yes"; else print "no"
 
                bob:fred
                bob.name = "Hello"