예제 #1
0
파일: Processor.cs 프로젝트: gurgutan/GLang
 public int Execute(ASTNode node, BNFGrammar grammar)
 {
     Grammar = grammar;
     Storage.Local.Clear();
     Storage.Operative.Clear();
     Storage.Output.Clear();
     Translate(node);
     return(Error);
 }
예제 #2
0
파일: AST.cs 프로젝트: gurgutan/GLang
 //Функция возвращает истину, если в грамматике grammar есть правило, описывающее текущий узел AST
 public bool IsMatch(BNFGrammar grammar)
 {
     if (!grammar.Rules.ContainsKey(this.RuleName))
     {
         return(false);
     }
     //Получаем из грамматики правило, указанное в узле
     BNFGrammar.BNFRule rule = grammar.Rules[RuleName];
     return(IsMatch(rule));
 }
예제 #3
0
파일: Processor.cs 프로젝트: gurgutan/GLang
 public Processor(Processor parent, BNFGrammar grammar)
 {
     Parent  = parent;
     Grammar = grammar;
 }
예제 #4
0
파일: Processor.cs 프로젝트: gurgutan/GLang
 public Processor(BNFGrammar grammar)
 {
     Grammar = grammar;
 }
예제 #5
0
 public Parser(BNFGrammar _grammar)
 {
     Grammar = _grammar;
 }
예제 #6
0
 public Parser(BNFGrammar _grammar, string _input)
 {
     Input   = _input;
     Grammar = _grammar;
 }
예제 #7
0
 public CategoryProcessor(CategoryProcessor parent, BNFGrammar grammar)
 {
     Parent  = parent;
     Grammar = grammar;
 }
예제 #8
0
 public CategoryProcessor(BNFGrammar grammar)
 {
     Grammar = grammar;
 }