X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fexpressions%2Fannotations%2FAnnotationUtils.java;h=8cc088b955b8ded475ba86d150551f5a5f2ec44c;hp=fb7334cd2b2cf52cdbd1faf85dc266b762af9bc8;hb=66ced93f835205135a84fea73b2fbb8e9d610f7e;hpb=2367c227645db518955fc142ddf6b4c5787eab42 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 fb7334cd2..8cc088b95 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 @@ -5,8 +5,30 @@ import org.simantics.scl.compiler.elaboration.expressions.ELiteral; import org.simantics.scl.compiler.elaboration.expressions.EStringLiteral; import org.simantics.scl.compiler.elaboration.expressions.EVar; import org.simantics.scl.compiler.elaboration.expressions.Expression; +import org.simantics.scl.compiler.errors.ErrorLog; +import org.simantics.scl.compiler.internal.parsing.declarations.DAnnotationAst; public class AnnotationUtils { + /** + * Processes an annotation of form + *
@Annotation "text"
+ * or + *
@Annotation text
+ */ + public static String processStringAnnotation(ErrorLog errorLog, DAnnotationAst annotation) { + if(annotation.parameters.length != 1) + errorLog.log(annotation.location, "Expected one string parameter for " + annotation.id.text); + String result = extractString(annotation.parameters[0]); + if(result == null) + errorLog.log(annotation.location, "Expected a string parameter for " + annotation.id.text); + return result; + } + + public static void processTagAnnotation(ErrorLog errorLog, DAnnotationAst annotation) { + if(annotation.parameters.length != 0) + errorLog.log(annotation.location, "Expected no parameters for " + annotation.id.text); + } + public static String extractString(Expression expression) { if(expression instanceof EVar) return ((EVar)expression).name;