mirror of
https://github.com/adelphes/android-dev-ext.git
synced 2025-12-23 09:59:25 +00:00
allow trailing comma for array literals
This commit is contained in:
@@ -2294,7 +2294,7 @@ function rootTerm(tokens, mdecls, scope, imports, typemap) {
|
|||||||
// array initer
|
// array initer
|
||||||
let elements = [];
|
let elements = [];
|
||||||
if (!tokens.isValue('}')) {
|
if (!tokens.isValue('}')) {
|
||||||
elements = expressionList(tokens, mdecls, scope, imports, typemap);
|
elements = expressionList(tokens, mdecls, scope, imports, typemap, { isArrayLiteral:true });
|
||||||
tokens.expectValue('}');
|
tokens.expectValue('}');
|
||||||
}
|
}
|
||||||
const ident = `{${elements.map(e => e.source).join(',')}}`;
|
const ident = `{${elements.map(e => e.source).join(',')}}`;
|
||||||
@@ -2369,12 +2369,18 @@ function newTerm(tokens, mdecls, scope, imports, typemap) {
|
|||||||
* @param {Scope} scope
|
* @param {Scope} scope
|
||||||
* @param {ResolvedImport[]} imports
|
* @param {ResolvedImport[]} imports
|
||||||
* @param {Map<string,JavaType>} typemap
|
* @param {Map<string,JavaType>} typemap
|
||||||
|
* @param {{isArrayLiteral: boolean}} [opts]
|
||||||
*/
|
*/
|
||||||
function expressionList(tokens, mdecls, scope, imports, typemap) {
|
function expressionList(tokens, mdecls, scope, imports, typemap, opts) {
|
||||||
let e = expression(tokens, mdecls, scope, imports, typemap);
|
let e = expression(tokens, mdecls, scope, imports, typemap);
|
||||||
const expressions = [e];
|
const expressions = [e];
|
||||||
while (tokens.current.value === ',') {
|
while (tokens.isValue(',')) {
|
||||||
tokens.inc();
|
if (opts && opts.isArrayLiteral) {
|
||||||
|
// array literals are allowed a single trailing comma
|
||||||
|
if (tokens.current.value === '}') {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
e = expression(tokens, mdecls, scope, imports, typemap);
|
e = expression(tokens, mdecls, scope, imports, typemap);
|
||||||
expressions.push(e);
|
expressions.push(e);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user