+
+ public static List<EVar> extractIdentifierList(Expression expression) {
+ if(expression instanceof EVar || expression instanceof EStringLiteral || expression instanceof ELiteral)
+ return Collections.singletonList(new EVar(expression.location, extractString(expression)));
+ else if(expression instanceof EListLiteral) {
+ Expression[] components = ((EListLiteral)expression).getComponents();
+ EVar[] items = new EVar[components.length];
+ for(int i=0;i<components.length;++i) {
+ String value = extractString(components[i]);
+ if(value == null)
+ return null;
+ items[i] = new EVar(components[i].location, value);
+ }
+ return Arrays.asList(items);
+ }
+ return null;
+ }