Skip to content

Commit

Permalink
Added keywords: EndClass, EndStruct, EndInterface, EndEnum, EndProper…
Browse files Browse the repository at this point in the history
…ty, EndFunction, EndMethod, EndOperator, EndLambda

Signed-off-by: D-a-n-i-l-o <D-a-n-i-l-o@users.noreply.github.com>
  • Loading branch information
D-a-n-i-l-o committed May 16, 2021
1 parent c114d12 commit d336974
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 13 deletions.
49 changes: 38 additions & 11 deletions src/wake/parser.wx
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,16 @@ Class Parser

Local decls:=New Stack<Decl>

While Toke And Toke<>"end"
While Toke And (Toke<>"end" And
Toke<>"endclass" And
Toke<>"endstruct" And
Toke<>"endinterface" And
Toke<>"endfunction" And
Toke<>"endmethod" And
Toke<>"endlambda" And
Toke<>"endoperator" And
Toke<>"endenum" And
Toke<>"endproperty")

Try

Expand Down Expand Up @@ -427,8 +436,13 @@ Class Parser
decl.members=ParseDecls( mflags,False )

Try
Parse( "end" )
CParse( decl.kind )
If decl.kind = "class" And CParse( "endclass" )
Elseif decl.kind = "struct" And CParse( "endstruct" )
Elseif decl.kind = "interface" And CParse( "endinterface" )
Else
Parse( "end" )
CParse( decl.kind )
Endif
ParseEol()
Catch ex:ParseEx
SkipToNextLine()
Expand All @@ -449,6 +463,9 @@ Class Parser
Local type:FuncTypeExpr
Local whereExpr:Expr
Local symbol:String
Local originalKind:String = kind

originalKind = kind

Try

Expand Down Expand Up @@ -634,11 +651,18 @@ Class Parser
Case "getter"
If Not (flags & DECL_SETTER) Error( "Getter must appear after setter" )
Default
Parse( "end" )
If flags & (DECL_GETTER|DECL_SETTER)
CParse( "property" )
Else
CParse( kind )
If CParse( "end" )
If flags & (DECL_GETTER|DECL_SETTER)
CParse( "property" )
Else
If Not CParse( kind ) Then CParse( originalKind )
Endif
Elseif originalKind = "function" And CParse( "endfunction" )
Elseif originalKind = "method" And CParse( "endmethod" )
Elseif originalKind = "operator" And CParse( "endoperator" )
Elseif originalKind = "operator" And CParse( "endmethod" )
Elseif originalKind = "lambda" And CParse( "endlambda" )
Elseif originalKind = "property" And CParse( "endproperty" ) And flags & (DECL_GETTER|DECL_SETTER)
Endif
If kind<>"lambda" ParseEol()
End
Expand Down Expand Up @@ -714,8 +738,11 @@ Class Parser

Try

Parse( "end" )
CParse( "enum" )
If CParse( "end" )
CParse( "enum" )
Else
Parse( "endenum" )
End
ParseEol()

Catch ex:ParseEx
Expand Down Expand Up @@ -799,7 +826,7 @@ Class Parser
For Local decl:=Eachin decls
stmts.Push( New VarDeclStmtExpr( Cast<VarDecl>(decl),decl.srcpos,decl.endpos ) )
Next
Case "end","endif","endselect","endtry","endfor","endwhile","wend","next","until","forever","else","elseif","setter","getter","case","default","catch"
Case "end","endif","endselect","endtry","endfor","endwhile","wend","next","until","forever","else","elseif","setter","getter","case","default","catch","endclass","endstruct","endinterface","endenum","endproperty","endfunction","endmethod","endoperator","endlambda"
Exit
Default
Try
Expand Down
4 changes: 2 additions & 2 deletions src/wake/toker.wx
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ Function InitToker:Void()
keyWords+="Public;Private;Protected;Internal;Friend;"
keyWords+="Void;Bool;Byte;UByte;Short;UShort;Int;UInt;Long;ULong;Float;Double;String;Array;Object;Continue;Exit;"
keyWords+="New;Self;Super;Eachin;True;False;Null;Where;"
keyWords+="Alias;Const;Local;Global;Field;Method;Function;Property;Getter;Setter;Operator;Lambda;"
keyWords+="Enum;Class;Interface;Struct;Extends;Implements;Virtual;Override;Abstract;Final;Inline;"
keyWords+="Alias;Const;Local;Global;Field;Method;EndMethod;Function;EndFunction;Property;EndProperty;Getter;Setter;Operator;EndOperator;Lambda;EndLambda;"
keyWords+="Enum;EndEnum;Class;EndClass;Interface;EndInterface;Struct;EndStruct;Extends;Implements;Virtual;Override;Abstract;Final;Inline;"
keyWords+="Var;Varptr;Ptr;"
keyWords+="Not;Mod;And;Or;Shl;Shr;End;"
keyWords+="If;Then;Else;Elseif;Endif;"
Expand Down

0 comments on commit d336974

Please sign in to comment.