Почему
class aa
{
gen val:int;
}
выдает ошибку
Error 1 parse error near keyword `gen': expecting type declaration C:\Users\Администратор\Documents\Visual Studio 2008\Projects\ConsoleApplication7\ConsoleApplication7\Main.n 39 8 ConsoleApplication7
в то же время как внутри функции
gen val:int;
работает вполне нормально
gen в принципе сейчас эквивалентен
match(expr1)
{
| <[$per : $type ]> =>
<[ mutable $per : $type; ]>
}
Здравствуйте, Аноним, Вы писали:
А>Почему
А>А> class aa
А> {
А> gen val:int;
А> }
А>
А>выдает ошибку
А>Error 1 parse error near keyword `gen': expecting type declaration C:\Users\Администратор\Documents\Visual Studio 2008\Projects\ConsoleApplication7\ConsoleApplication7\Main.n 39 8 ConsoleApplication7
Макросы уровня выражения не могут расширять синтаксис вне выражения. Да и применяться вне выражения не могут.
Чтобы объявить синтаксис на уровне членов класса нужно создать макрос верхнего уровня (макроатрибот уровня метода) и в нем объявить синтаксис.
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Аноним, Вы писали:
А>>Почему
А>>А>> class aa
А>> {
А>> gen val:int;
А>> }
А>>
А>>выдает ошибку
А>>Error 1 parse error near keyword `gen': expecting type declaration C:\Users\Администратор\Documents\Visual Studio 2008\Projects\ConsoleApplication7\ConsoleApplication7\Main.n 39 8 ConsoleApplication7
VD>Макросы уровня выражения не могут расширять синтаксис вне выражения. Да и применяться вне выражения не могут.
VD>Чтобы объявить синтаксис на уровне членов класса нужно создать макрос верхнего уровня (макроатрибот уровня метода) и в нем объявить синтаксис.
Вопрос в следующем, почему хотя задача очень похожа потребовалось делать много разных синтаксисов?