Учитывая некоторое конкретное значение синтаксиса, как я могу сопоставить его с другим типом значения (в данном случае int
)?Как я могу преобразовать конкретные значения синтаксиса в другие типы значений?
// Syntax
start syntax MyTree = \node: "(" MyTree left "," MyTree right ")"
| leaf: Leaf leaf
;
layout MyLayout = [\ \t\n\r]*;
lexical Leaf = [0-9]+;
Это не работает, к сожалению:
public Tree increment() {
MyTree tree = (MyTree)`(3, (1, 10))`;
return visit(tree) {
case l:(Leaf)`3` => l + 1
};
}
Или это единственный способ implode
в ADT, где я указал типы?