Я стажер, пытаюсь написать свой первый синтаксис с использованием Rascal.
Во время программирования я столкнулся с ошибкой, которую мой преподаватель, Ример ван Розен, никогда раньше не видел. В настоящий момент я все еще пытаюсь выяснить, является ли проблема моим кодом или ошибкой Rascal, но я чувствовал, что должен сообщить об ошибке здесь.
Синтаксис, используемый для обычного синтаксического анализа, и даже после того, как код был возвращен в прежнее состояние до добавления нового материала, он все равно выдает ту же ошибку.
Мой файл синтаксиса
module Syntax
lexical Natural = [0-9]+ !>> [0-9] ;
lexical ID = [a-zA-Z][a-z0-9A-Z]* !>> [a-z0-9A-Z];
lexical String = "\"" ![\"]* "\"";
lexical Sym = [a-zA-Z.!@#$%^&*];
lexical Mp = Sym*;
layout WhiteSpace = [\t-\n \r]* ;
start syntax CreatorData
= title: "title " ID title
| author: "author " ID author
| homepage: "homepage " ID homepage;
Parser
module Parser
import Syntax;
import AST;
import ParseTree;
public CreatorData load(str txt) = parse(#CreatorData, txt);
Ошибка
Я надеюсь, что кто-нибудь скажет мне, где я ломаю свою программу или что я указал на неизвестную ошибку Rascal.