Optional initialiser in field declaration, to match examples (!)

This commit is contained in:
Tony Garnock-Jones 2016-08-07 17:34:19 -04:00
parent add689623e
commit 183f104ade
2 changed files with 5 additions and 3 deletions

View File

@ -129,9 +129,11 @@ var modifiedSourceActions = {
label + ', ' + JSON.stringify(formals) + ');';
},
FieldDeclarationStatement: function(_field, memberExpr, _eq, initExpr, sc) {
FieldDeclarationStatement: function(_field, memberExpr, _eq, maybeInitExpr, sc) {
return 'Syndicate.Actor.declareField(' + memberExpr.memberObjectExpr.asES5 + ', ' +
memberExpr.memberPropExpr.asES5 + ', ' + initExpr.asES5 + ')' +
memberExpr.memberPropExpr.asES5 + ', ' +
(maybeInitExpr.numChildren === 1 ? maybeInitExpr.asES5 : 'undefined') +
')' +
sc.interval.contents;
},

View File

@ -31,7 +31,7 @@ Syndicate <: ES5 {
AssertionTypeDeclarationStatement
= (assertion | message) type identifier "(" FormalParameterList ")" ("=" stringLiteral)? #(sc)
FieldDeclarationStatement = field MemberExpression "=" AssignmentExpression<withIn> #(sc)
FieldDeclarationStatement = field MemberExpression ("=" AssignmentExpression<withIn>)? #(sc)
MemberExpression += field MemberExpression -- fieldRefExp
UnaryExpression += delete field MemberExpression -- fieldDelExp