PEG: не расширяется правило
От: catbert  
Дата: 31.03.12 16:59
Оценка:
Написал такую PEG-грамматику:

  [PegGrammar( Options = EmitDebugSources, start, 
  grammar
  {
    s : void              = ' '*;
      
    letter              = ['A'..'Z', 'a'..'z'] / '_';
    digit               = ['0'..'9'];

    identifier  is expr = letter+ (letter / digit)* s;
    [Extends(expr)]
    num         is expr = digit + s;
    parentheses is expr = '('s expr ')'s;
    // postfix unary expressions
    postfixInc  is expr = expr : 30 "++"s;
    postfixDec  is expr = expr : 30 "--"s; 
    // prefix unary expressions
    prefixInc   is expr = "++"s expr : 30; 
    prefixDec   is expr = "--"s expr : 30;
    negation    is expr = '-'s  expr : 30;
    // infix binary expressions
    sum         is expr = expr : 10 '+'s  expr : 10;
    sub         is expr = expr : 10 '-'s  expr : 10;
    mul         is expr = expr : 20 '*'s  expr : 20;
    div         is expr = expr : 20 '/'s  expr : 20;

    [Extensible(lol)]
    expr     : Expr;

    start                 : Expr = s expr ![Any];
  })]
  public class InterpreterParser
  {
      // обработчики...
  }
}


Выдается куча варнингов вроде такого:

warning: N10003: method Interpreter.InterpreterParser.prefixDec(op : Nemerle.Peg.NToken, value : Interpreter.Expr) : Interpreter.Expr is not externally visible and has never been referenced


Парсер ничего не парсит (возвращает None). В чем дело?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.