X-Git-Url: https://ocean-lang.org/code/?p=ocean;a=blobdiff_plain;f=csrc%2Foceani.mdc;h=3474508cf6a7018b186c795196f1822ee1332116;hp=e3dc493d7fb1b787ba46cca80fb0724d43ef1560;hb=7643c19409c4d3c6d94412a85d0dc048a6e8a68f;hpb=9da671b6631e648e82b07c323bfa9315c6c8c5f2 diff --git a/csrc/oceani.mdc b/csrc/oceani.mdc index e3dc493..3474508 100644 --- a/csrc/oceani.mdc +++ b/csrc/oceani.mdc @@ -1582,6 +1582,9 @@ make a copy of an array with controllable recursive depth. .free = array_free, }; +###### declare terminals + $TERM [ ] + ###### type grammar | [ NUMBER ] Type ${ @@ -1818,6 +1821,9 @@ function will be needed. free(e); break; +###### declare terminals + $TERM struct . + ###### variable grammar | Variable . IDENTIFIER ${ { @@ -2064,6 +2070,8 @@ an executable. ###### Grammar + $TERM True False + $*val Value -> True ${ $0 = new_val(Tbool, $1); @@ -2185,6 +2193,8 @@ link to find the primary instance. ###### Grammar + $TERM : :: + $*var VariableDecl -> IDENTIFIER : ${ { struct variable *v = var_decl(c, $1.txt); @@ -3002,11 +3012,10 @@ is in-place. ###### Binode types Block, -###### expr precedence - $TERM pass - ###### Grammar + $TERM { } ; + $*binode Block -> { IN OptNL Statementlist OUT OptNL } ${ $0 = $right = $<1; }$ + $TERM pass SimpleStatement -> pass ${ $0 = NULL; }$ | ERROR ${ tok_err(c, "Syntax error in statement", &$1); }$ ## SimpleStatement Grammar @@ -3251,6 +3261,9 @@ it is declared, and error will be raised as the name is created as Assign, Declare, +###### declare terminals + $TERM = + ###### SimpleStatement Grammar | Variable = Expression ${ $0 = new(binode); @@ -3921,6 +3934,8 @@ various declarations in the parse context. $void Ocean -> OptNL DeclarationList + ## declare terminals + OptNL -> | OptNL NEWLINE Newlines -> NEWLINE @@ -3964,6 +3979,8 @@ searching through for the Nth constant for decreasing N. ###### top level grammar + $TERM const + DeclareConstant -> const { IN OptNL ConstList OUT OptNL } Newlines | const { SimpleConstList } Newlines | const IN OptNL ConstList OUT Newlines @@ -4070,6 +4087,8 @@ analysis is a bit more interesting at this level. c->prog = $<1; } }$ + $TERM program + $*binode Program -> program OpenScope Varlist ColonBlock Newlines ${ $0 = new(binode);