Два дурацких вопроса по примеру реализации for
От: FDSC Россия consp11.github.io блог
Дата: 25.05.07 11:43
Оценка: :)
Есть такое
macro for(init, cond, change, body) 
syntax ("for", "(", init, ";", cond, ";", change, ")", body) 
{ 
  ... 
}


Чего-то я не понял, где вообще найти, как определяются границы body. Т.е. если там будут какие-то макросы или ещё что-то, где закончится body и начётся новый блок кода, уже не входящий в параметры макроса. А так же где находятся ограничение на применяемые символы в строках syntax, т.е. что нельзя писать внутри syntax, например syntax(",", "{") точно нельзя...


Второй вопрос
Пытался для развлечения определить свой макрос, по типу for
    macro forAll(j, j0, je, body)
    syntax("forAll", j, "=", "[", j0, ";", je, "]", body)
    {
        for(mutable j = j0; j <= je; j++)
        {
            body;
        }
    }


Пишет "Error 1 unbound type name 'IMacro'. Unbound type name 'Nemerle.Compiler.Location'. Unbound type name 'Nemerle.Compiler.Location'. Unbound type name 'PExpr'. Unbound type name 'SyntaxElement'. Unbound type name 'Typer'. Unbound type name 'SyntaxElement'. Unbound type name 'PExpr'. Unbound type name 'GrammarElement'. Unbound type name 'SyntaxElement'. Unbound type name 'SyntaxElement' F:\Prg\BarCalculator\Current\BarsCalculator\CalcProcessor\Численные методы\СЛАУ\MGauss.n 12 5 CalcProcessor"

В чём тут дело?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.