コード例 #1
0
ファイル: Env.cs プロジェクト: JammyITA/APFebAss
        public bool get(Token t)
        {
            //dump("Searching " + t.ToString());
            for (Env e = this; e != null; e = e.prev)
            {
                if (e.table.Contains(t))
                    return (bool)e.table[t];
            }

            dump("Error: bind for " + t.ToString() + " not found");
            throw new BindNotFoundException("Error: bind for " + t.ToString() + " not found");
        }
コード例 #2
0
ファイル: Parser.cs プロジェクト: JammyITA/APFebAss
 public Parser(Tokenizer tokenizer)
 {
     this.tokenizer = tokenizer;
     currToken = this.tokenizer.nextToken();
 }
コード例 #3
0
ファイル: Parser.cs プロジェクト: JammyITA/APFebAss
        Token match(TokenType type)
        {
            Token tmp = currToken;
            if (currToken.Type == type)
                currToken = tokenizer.nextToken();
            else
                Error("Error: excepted " + type.ToString() + ", read " + (currToken.Type).ToString() + ".");

            return tmp;
        }
コード例 #4
0
ファイル: Node.cs プロジェクト: JammyITA/APFebAss
 public IdeNode(Token t, Env e)
     : base(t, e)
 {
 }
コード例 #5
0
ファイル: Node.cs プロジェクト: JammyITA/APFebAss
 public AndNode(Token t)
     : base(t)
 {
     nodes = new List<Node>();
 }
コード例 #6
0
ファイル: Node.cs プロジェクト: JammyITA/APFebAss
 public Node(Token t, Env e = null)
 {
     this.token = t;
     this.env = e;
 }
コード例 #7
0
ファイル: Node.cs プロジェクト: JammyITA/APFebAss
 public LetNode(Token t, IdeNode ide, Node definition, Node body, Env e)
     : base(t, e)
 {
     this.ide = ide;
     this.definition = definition;
     this.body = body;
 }
コード例 #8
0
ファイル: Env.cs プロジェクト: JammyITA/APFebAss
 public void Put(Token t, bool b)
 {
     table.Add(t, b);
     //dump("Adding " + t.ToString());
 }