コード例 #1
0
ファイル: FunctionNode.cs プロジェクト: tomoki/Umi
 public FunctionNode(Node name,Node paraNode,Node func)
     : base()
 {
     this.name = (SymbolNode)name;
     this.paraNode = (ParametersNode)paraNode;
     this.func = (BlockNode)func;
     this.paraNode.SetBlock(this.func);
 }
コード例 #2
0
ファイル: Parser.cs プロジェクト: tomoki/Umi
 public Parser()
 {
     //グローバルなブロック。
     //グローバル変数等を格納する。
     Block = new BlockNode();
     Block.Set("true",new TrueNode());
     Block.Set("false",new FalseNode());
     Block.Set("system",new SystemNode());
 }
コード例 #3
0
ファイル: ElseNode.cs プロジェクト: tomoki/Umi
 public ElseNode(BlockNode block)
 {
     FalseBlock = block;
 }
コード例 #4
0
ファイル: Parser.cs プロジェクト: tomoki/Umi
 //ブロックを処理する。
 private Node ParseBlock()
 {
     //新しいブロックを今いるブロックの下に作る。
     BlockNode innerBlockNode = new BlockNode(Block);
     //今いるブロックを新しいブロックに。
     Block = innerBlockNode;
     //閉じ括弧がくるまで、文をブロックに入れる。
     while(tokenType != TokenType.CloseBrace){
         Node n = ParseStatement();
         if(n==null){
             break;
         }
         innerBlockNode.Add(n);
     }
     if(tokenType != TokenType.CloseBrace){
         throw new UnexpectedException(tokenType,"CloseBrase(})");
     }
     GetToken();
     //中のブロックから、もともといたブロックに出る。
     Block = innerBlockNode.UpperBlock;
     return innerBlockNode;
 }
コード例 #5
0
ファイル: BlockNode.cs プロジェクト: tomoki/Umi
 //ブロックノードの下のブロックノード
 public BlockNode(BlockNode upper)
 {
     UpperBlock = upper;
     ChildNodes = new ArrayList();
     Name = new Dictionary<string,Node>();
 }
コード例 #6
0
ファイル: BlockNode.cs プロジェクト: tomoki/Umi
 //一番上のブロックノード
 public BlockNode()
 {
     UpperBlock = null;
     ChildNodes = new ArrayList();
     Name = new Dictionary<string,Node>();
 }