X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fexpressions%2Fannotations%2FAnnotationUtils.java;fp=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fexpressions%2Fannotations%2FAnnotationUtils.java;h=08ea47297b7363bd8974c24154aa767b8e4d076b;hb=b2676209b072592da3425c2efb29f51eb5c4a0e0;hp=8cc088b955b8ded475ba86d150551f5a5f2ec44c;hpb=f53c22ce99b7b4fab87812cf292140b08f472b35;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/annotations/AnnotationUtils.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/annotations/AnnotationUtils.java index 8cc088b95..08ea47297 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/annotations/AnnotationUtils.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/annotations/AnnotationUtils.java @@ -1,6 +1,11 @@ package org.simantics.scl.compiler.elaboration.expressions.annotations; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + import org.simantics.scl.compiler.constants.StringConstant; +import org.simantics.scl.compiler.elaboration.expressions.EListLiteral; import org.simantics.scl.compiler.elaboration.expressions.ELiteral; import org.simantics.scl.compiler.elaboration.expressions.EStringLiteral; import org.simantics.scl.compiler.elaboration.expressions.EVar; @@ -46,4 +51,21 @@ public class AnnotationUtils { } return null; } + + public static List 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