Skip to content

Commit 9ef5811

Browse files
committed
added final parsing (same as 'var' for local vars)
1 parent 29237e3 commit 9ef5811

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

hscript/Parser.hx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,7 @@ class Parser {
598598
if( semic ) push(TSemicolon);
599599
}
600600
mk(EIf(cond,e1,e2),p1,(e2 == null) ? tokenMax : pmax(e2));
601-
case "var":
601+
case "var", "final":
602602
var ident = getIdent();
603603
var tk = token();
604604
var t = null;
@@ -996,9 +996,13 @@ class Parser {
996996
t = token();
997997
switch( t ) {
998998
case TBrClose: break;
999-
case TId("var"):
999+
case TId("var"), TId("final"):
10001000
var name = getIdent();
10011001
ensure(TDoubleDot);
1002+
if( t.match(TId("final")) ) {
1003+
if( meta == null ) meta = [];
1004+
meta.push({ name : ":final", params : [] });
1005+
}
10021006
fields.push( { name : name, t : parseType(), meta : meta } );
10031007
meta = null;
10041008
ensure(TSemicolon);
@@ -1230,7 +1234,7 @@ class Parser {
12301234
ret : inf.ret,
12311235
}),
12321236
};
1233-
case "var":
1237+
case "var", "final":
12341238
var name = getIdent();
12351239
var get = null, set = null;
12361240
if( maybe(TPOpen) ) {

0 commit comments

Comments
 (0)