final function parsing

This commit is contained in:
Ne_Eo
2024-09-03 05:05:21 +02:00
parent 11b3a52287
commit 933c9cb5e3
2 changed files with 7 additions and 2 deletions
+1 -1
View File
@@ -68,7 +68,7 @@ enum Expr {
EFor( v : String, it : Expr, e : Expr, ?ithv: String);
EBreak;
EContinue;
EFunction( args : Array<Argument>, e : Expr, ?name : String, ?ret : CType, ?isPublic : Bool, ?isStatic : Bool, ?isOverride : Bool, ?isPrivate : Bool );
EFunction( args : Array<Argument>, e : Expr, ?name : String, ?ret : CType, ?isPublic : Bool, ?isStatic : Bool, ?isOverride : Bool, ?isPrivate : Bool, ?isFinal : Bool );
EReturn( ?e : Expr );
EArray( e : Expr, index : Expr );
EArrayDecl( e : Array<Expr>, ?wantedType: CType );
+6 -1
View File
@@ -769,6 +769,11 @@ class Parser {
var str = parseStructure("class"); // var class
nextIsFinal = false;
return str;
case TId("function"):
nextIsFinal = true;
var str = parseStructure("function"); // var function
nextIsFinal = false;
return str;
default:
push(nextToken);
}
@@ -837,7 +842,7 @@ class Parser {
var tk = token();
push(tk);
mk(EFunction(inf.args, inf.body, name, inf.ret, nextIsPublic, nextIsStatic, nextIsOverride, nextIsPrivate),p1,pmax(inf.body));
mk(EFunction(inf.args, inf.body, name, inf.ret, nextIsPublic, nextIsStatic, nextIsOverride, nextIsPrivate, nextIsFinal),p1,pmax(inf.body));
case "import":
var oldReadPos = readPos;
var tk = token();