/*
* Copyright (c) Huawei Technologies Co., Ltd. 2024-2025. All rights reserved.
*/
macro package magic.dsl
import std.ast.*
public macro element(input: Tokens): Tokens {
assertParentContext("promptPattern")
let decl: Decl = parseDecl(input)
if (!decl.isVarDecl()) {
throw Exception("@element must annotate variable definitions")
}
let varDecl = decl.asVarDecl()
let name = varDecl.identifier.value
setItem("elementName", name)
return input
}
public macro element(attr: Tokens, input: Tokens): Tokens {
assertParentContext("promptPattern")
let decl: Decl = parseDecl(input)
if (!decl.isVarDecl()) {
throw Exception("@element must annotate variable definitions")
}
let varDecl = decl.asVarDecl()
let name = varDecl.identifier.value
setItem("elementName", name)
return input
}