Added finals

This commit is contained in:
NeeEoo
2023-04-10 02:10:46 +02:00
parent 812abae6e5
commit dc5282c32e
+21 -1
View File
@@ -631,6 +631,10 @@ class Parser {
var str = parseStructure("var"); // override var
nextIsOverride = false;
str;
case TId("final"):
var str = parseStructure("final"); // override final
nextIsOverride = false;
str;
default:
unexpected(nextToken);
nextIsOverride = false;
@@ -656,6 +660,10 @@ class Parser {
var str = parseStructure("var"); // static var
nextIsStatic = false;
str;
case TId("final"):
var str = parseStructure("final"); // static final
nextIsStatic = false;
str;
default:
unexpected(nextToken);
nextIsStatic = false;
@@ -681,12 +689,16 @@ class Parser {
var str = parseStructure("var"); // public var
nextIsPublic = false;
str;
case TId("final"):
var str = parseStructure("final"); // public final
nextIsPublic = false;
str;
default:
unexpected(nextToken);
nextIsPublic = false;
null;
}
case "var":
case "var" | "final":
var ident = getIdent();
var tk = token();
var t = null;
@@ -1204,6 +1216,14 @@ class Parser {
fields.push( { name : name, t : parseType(), meta : meta } );
meta = null;
ensure(TSemicolon);
case TId("final"):
var name = getIdent();
ensure(TDoubleDot);
if( meta == null ) meta = [];
meta.push({ name : ":final", params : [] });
fields.push( { name : name, t : parseType(), meta : meta } );
meta = null;
ensure(TSemicolon);
case TId(name):
ensure(TDoubleDot);
fields.push( { name : name, t : parseType(), meta : meta } );