コード例 #1
0
ファイル: Type.cs プロジェクト: LukaHorvat/Kento
 public Type( Type BaseClass, CodeBlock Code )
     : this(BaseClass, Code.Value)
 {
 }
コード例 #2
0
ファイル: Type.cs プロジェクト: LukaHorvat/Kento
 public Type( CodeBlock Code )
     : base(Code.Value)
 {
     Identifiers = new Scope();
     Type = CodeBlockType.Type;
 }
コード例 #3
0
ファイル: Loop.cs プロジェクト: LukaHorvat/Kento
 public Loop(CodeBlock Condition, CodeBlock Block)
     : base(Block.Value)
 {
     condition = Condition;
     Type = CodeBlockType.Loop;
 }
コード例 #4
0
ファイル: Operators.cs プロジェクト: LukaHorvat/Kento
        public override Value Operate( Value First, Value Second )
        {
            if ( First is Reference ) First = ( First as Reference ).ReferencingValue;
            if ( Second is Reference ) Second = ( Second as Reference ).ReferencingValue;

            if ( First is Boolean ) First = new CodeBlock( new[] { First as Token }.ToList() );
            if ( First is Expression ) First = new CodeBlock( First as Expression );
            if ( First is CodeBlock && Second is CodeBlock )
            {
                return new Loop( First as CodeBlock, Second as CodeBlock );
            }
            throw new Exception( "Operands must be code blocks" );
        }
コード例 #5
0
ファイル: Operators.cs プロジェクト: LukaHorvat/Kento
 public Value CompileTimeOperate( Value First, Value Second )
 {
     if ( First is Expression ) First = new CodeBlock( First as Expression );
     if ( First is CodeBlock && Second is CodeBlock )
     {
         return new Loop( First as CodeBlock, Second as CodeBlock );
     }
     return NoValue.Value;
 }
コード例 #6
0
ファイル: Function.cs プロジェクト: LukaHorvat/Kento
 public Function(List Arguments, CodeBlock Code, Scope Scope)
     : this(Arguments.GetValues().ConvertAll(X => X as String), Code.Value, Scope)
 {
 }