Top > Shiba > メモ

* 道のり [#s3b4b6c0]
近々のやることリスト
- return 文
- function call
- const 対応
- float 対応
- ref 対応

* 途中経過 [#l611ad77]
#code(c,){{
module App.EntryPoint;
utility EntryPoint
{
    static void Arithmetic(const int aA , const int aB)
    {
        int add = aA + aB;
        int sub = aA - aB;
        int mul = aA * aB;
        int div = aA / aB;
        int mod = aA % aB;
    }

    static void BitOp(const int aA , const int aB)
    {
        int and = aA & aB;
        int or = aA | aB;
        int xor = aA ^ aB;
    }

    static void ShiftOp(const int aA , const int aB)
    {
        int shiftL = aA << aB;
        int shiftR = aA >> aB;
    }

    static void AssignExpr(const int aA)
    {
        int val = aA;
        val += aA;
        val -= aA;
        val *= aA;
        val /= aA;
        val %= aA;
        val &= aA;
        val |= aA;
        val ^= aA;
        val <<= aA;
        val >>= aA;
    }

    static void PostfixIncDec()
    {
        int a = 1;
        int inc = a++;
        int dec = a--;
    }

    static void UnaryOp()
    {
        int a = 1;
        int inc = ++a;
        int dec = --a;
        int positive = +a;
        int negative = -a;
        int bitWiseNot = ~a;
        bool logicalNot = !(a == 0);
    }

    static void DeclBoolVar()
    {
        bool boolValue;
        bool boolValueTrue = true;
        bool boolValueTrue = false;
    }

    static void RelationalOp()
    {
        bool lessTest = 1 < 2;
        bool lessEqualTest = 3 <= 4;
        bool greaterTest = 5 > 6;
        bool greaterEqualTest = 7 >= 8;
    }

    static void EqualityOp()
    {
        bool intEqual = 1 == 2;
        bool intNotEqual = 2 != 3;
        bool boolEqual = intEqual == intNotEqual;
        bool boolNotEqual = intNotEqual != intEqual;
    }

    static void LogicalOp( const int aArg )
    {   
        bool logicalAnd = 0 <= aArg && aArg < 10;
        bool logicalOr = 0 < aArg || 10 <= aArg;
    }

    static void While()
    {
        int i = 0;

        // normal
        while ( i < 10 )
        {
            ++i;
        }

        // continue test
        while ( i < 10 )
        {
            i += 1;
            continue;
        }

        // break test
        while ( i < 10 )
        {
            break;
        }
    }

    static void If( const int aA , const int aB )
    {
        int result;
        if ( aA == aB )
        {
            result = 0;
        }
        else if ( aA < aB )
        {
            result = -1;
        }
        else if ( aB < aA )
        {
            result = 1;
        }
    }

    static void DoWhile( const int aLoopCount )
    {
        int i = 1;
        do
        {
            i += i;
            if ( i == 5 )
            {// break test
                break;
            }
            if ( i == 6 )
            {// continue test
                continue;
            }
        }
        while( i < aLoopCount );
    }
 
    static void For()
    {
        for ( int i = 0; i < 10; i++ )
        {
            for ( int k = 0; k < 10; ++k )
            {// break test
                break;
            }

            // continue test
            continue;
        }
    }

    static void ReturnNoType()
    {
        return;
    }
    
    static bool ReturnBool( const int aArg )
    {
        if ( ( aArg % 2 ) == 0 )
        {
            return true;
        }
        return false;
    }

    static void FuncVoidNoArg()
    {
    }

    static void CallFuncVoidNoArg()
    {
        FuncVoidNoArg();
    }

    static int FuncIntNoArg()
    {
        return 1;
    }

    static void CallFuncIntNoArg()
    {
        int result = FuncIntNoArg();
    }

    static int FuncIntWithArg( const int aArg )
    {
        return aArg + 1;
    }

    static void CallFuncIntWithArg()
    {
        int result = FuncIntWithArg( 1 );
    }
}
}}

#code(xml,){{
<?xml version="1.0" encoding="utf-8"?>
<xdata_root
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  major_version="1"
  minor_version="2"
  >
    <!--BCModule-->
        <!--version (0.1.0.0)--><uint8 value="0"/><uint8 value="1"/><uint8 value="0"/><uint8 value="0"/>
        <!--path--><string_ref value="App.EntryPoint"/>
        <!--constantTable--><reference label_name="LabelConstantTable"/>
        <!--symbolTable--><reference label_name="LabelSymbolTable"/>
        <!--objectTypeList--><reference label_name="LabelObjectTypeList"/>
    <!--BCConstantValueTable-->
        <align value="8"/>
        <label name="LabelConstantTable"/>
        <!--size--><uint32 value="40"/>
        <!--0x0000:--><sint32 value="1"/>
        <!--0x0004:--><sint32 value="0"/>
        <!--0x0008:--><sint32 value="2"/>
        <!--0x000C:--><sint32 value="3"/>
        <!--0x0010:--><sint32 value="4"/>
        <!--0x0014:--><sint32 value="5"/>
        <!--0x0018:--><sint32 value="6"/>
        <!--0x001C:--><sint32 value="7"/>
        <!--0x0020:--><sint32 value="8"/>
        <!--0x0024:--><sint32 value="10"/>
    <!--BCSymbolTable-->
        <align value="8"/>
        <label name="LabelSymbolTable"/>
        <!--count--><uint32 value="3"/>
        <string_ref value="App.EntryPoint.FuncVoidNoArg()"/>
        <string_ref value="App.EntryPoint.FuncIntNoArg()"/>
        <string_ref value="App.EntryPoint.FuncIntWithArg()"/>
    <!--BCObjectTypeList-->
        <align value="4"/>
        <label name="LabelObjectTypeList"/>
        <!--count--><uint32 value="1"/>
        <reference label_name="LabelObjectType:App.EntryPoint"/>
    <!--BCObjectType(App.EntryPoint)-->
        <align value="4"/>
        <label name="LabelObjectType:App.EntryPoint"/>
        <!--path--><string_ref value="App.EntryPoint"/>
        <!--FunctionList--><reference label_name="LabelFunctionList:App.EntryPoint"/>
    <!--BCFunctionList(App.EntryPoint)-->
        <align value="4"/>
        <label name="LabelFunctionList:App.EntryPoint"/>
        <!--count--><uint32 value="22"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.Arithmetic"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.BitOp"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.ShiftOp"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.AssignExpr"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.PostfixIncDec"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.UnaryOp"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.DeclBoolVar"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.RelationalOp"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.EqualityOp"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.LogicalOp"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.While"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.If"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.DoWhile"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.For"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.ReturnNoType"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.ReturnBool"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.FuncVoidNoArg"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.CallFuncVoidNoArg"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.FuncIntNoArg"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.CallFuncIntNoArg"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.FuncIntWithArg"/>
        <!--Function--><reference label_name="LabelFunction:App.EntryPoint.CallFuncIntWithArg"/>
    <!--BCFunction(App.EntryPoint.Arithmetic())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.Arithmetic()"/>
        <!--name--><string_ref value="Arithmetic"/>
        <reference label_name="LabelOpCode:App.EntryPoint.Arithmetic()"/>
    <!--BCOpCode(App.EntryPoint.Arithmetic())-28bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.Arithmetic()"/>
        <!--[0000]FENTER 0x07 0x02--><uint8 value="31"/><uint8 value="7"/><uint8 value="2"/><uint8 value="255"/>
        <!--[0001]ADDI32 SR02 SR00 SR01--><uint8 value="7"/><uint8 value="2"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0002]SUBI32 SR03 SR00 SR01--><uint8 value="8"/><uint8 value="3"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0003]MULS32 SR04 SR00 SR01--><uint8 value="9"/><uint8 value="4"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0004]DIVS32 SR05 SR00 SR01--><uint8 value="10"/><uint8 value="5"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0005]MODS32 SR06 SR00 SR01--><uint8 value="11"/><uint8 value="6"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0006]FLEAVE 0x07--><uint8 value="32"/><uint8 value="7"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.BitOp())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.BitOp()"/>
        <!--name--><string_ref value="BitOp"/>
        <reference label_name="LabelOpCode:App.EntryPoint.BitOp()"/>
    <!--BCOpCode(App.EntryPoint.BitOp())-20bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.BitOp()"/>
        <!--[0000]FENTER 0x05 0x02--><uint8 value="31"/><uint8 value="5"/><uint8 value="2"/><uint8 value="255"/>
        <!--[0001]ANDI32 SR02 SR00 SR01--><uint8 value="21"/><uint8 value="2"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0002]ORI32  SR03 SR00 SR01--><uint8 value="22"/><uint8 value="3"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0003]XORI32 SR04 SR00 SR01--><uint8 value="23"/><uint8 value="4"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0004]FLEAVE 0x05--><uint8 value="32"/><uint8 value="5"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.ShiftOp())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.ShiftOp()"/>
        <!--name--><string_ref value="ShiftOp"/>
        <reference label_name="LabelOpCode:App.EntryPoint.ShiftOp()"/>
    <!--BCOpCode(App.EntryPoint.ShiftOp())-16bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.ShiftOp()"/>
        <!--[0000]FENTER 0x04 0x02--><uint8 value="31"/><uint8 value="4"/><uint8 value="2"/><uint8 value="255"/>
        <!--[0001]SLLI32 SR02 SR00 SR01--><uint8 value="26"/><uint8 value="2"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0002]SLRI32 SR03 SR00 SR01--><uint8 value="27"/><uint8 value="3"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0003]FLEAVE 0x04--><uint8 value="32"/><uint8 value="4"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.AssignExpr())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.AssignExpr()"/>
        <!--name--><string_ref value="AssignExpr"/>
        <reference label_name="LabelOpCode:App.EntryPoint.AssignExpr()"/>
    <!--BCOpCode(App.EntryPoint.AssignExpr())-52bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.AssignExpr()"/>
        <!--[0000]FENTER 0x02 0x01--><uint8 value="31"/><uint8 value="2"/><uint8 value="1"/><uint8 value="255"/>
        <!--[0001]LDSRSR SR01 SR00--><uint8 value="4"/><uint8 value="1"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0002]ADDI32 SR01 SR01 SR00--><uint8 value="7"/><uint8 value="1"/><uint8 value="1"/><uint8 value="0"/>
        <!--[0003]SUBI32 SR01 SR01 SR00--><uint8 value="8"/><uint8 value="1"/><uint8 value="1"/><uint8 value="0"/>
        <!--[0004]MULS32 SR01 SR01 SR00--><uint8 value="9"/><uint8 value="1"/><uint8 value="1"/><uint8 value="0"/>
        <!--[0005]DIVS32 SR01 SR01 SR00--><uint8 value="10"/><uint8 value="1"/><uint8 value="1"/><uint8 value="0"/>
        <!--[0006]MODS32 SR01 SR01 SR00--><uint8 value="11"/><uint8 value="1"/><uint8 value="1"/><uint8 value="0"/>
        <!--[0007]ANDI32 SR01 SR01 SR00--><uint8 value="21"/><uint8 value="1"/><uint8 value="1"/><uint8 value="0"/>
        <!--[0008]ORI32  SR01 SR01 SR00--><uint8 value="22"/><uint8 value="1"/><uint8 value="1"/><uint8 value="0"/>
        <!--[0009]XORI32 SR01 SR01 SR00--><uint8 value="23"/><uint8 value="1"/><uint8 value="1"/><uint8 value="0"/>
        <!--[000A]SLLI32 SR01 SR01 SR00--><uint8 value="26"/><uint8 value="1"/><uint8 value="1"/><uint8 value="0"/>
        <!--[000B]SLRI32 SR01 SR01 SR00--><uint8 value="27"/><uint8 value="1"/><uint8 value="1"/><uint8 value="0"/>
        <!--[000C]FLEAVE 0x02--><uint8 value="32"/><uint8 value="2"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.PostfixIncDec())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.PostfixIncDec()"/>
        <!--name--><string_ref value="PostfixIncDec"/>
        <reference label_name="LabelOpCode:App.EntryPoint.PostfixIncDec()"/>
    <!--BCOpCode(App.EntryPoint.PostfixIncDec())-28bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.PostfixIncDec()"/>
        <!--[0000]FENTER 0x03 0x00--><uint8 value="31"/><uint8 value="3"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0001]LDSRC4 SR00 0x0000--><uint8 value="3"/><uint8 value="0"/><uint16 value="0"/>
        <!--[0002]LDSRSR SR01 SR00--><uint8 value="4"/><uint8 value="1"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0003]INCI32 SR00--><uint8 value="12"/><uint8 value="0"/><uint16 value="65535"/>
        <!--[0004]LDSRSR SR02 SR00--><uint8 value="4"/><uint8 value="2"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0005]DECI32 SR00--><uint8 value="13"/><uint8 value="0"/><uint16 value="65535"/>
        <!--[0006]FLEAVE 0x03--><uint8 value="32"/><uint8 value="3"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.UnaryOp())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.UnaryOp()"/>
        <!--name--><string_ref value="UnaryOp"/>
        <reference label_name="LabelOpCode:App.EntryPoint.UnaryOp()"/>
    <!--BCOpCode(App.EntryPoint.UnaryOp())-52bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.UnaryOp()"/>
        <!--[0000]FENTER 0x07 0x00--><uint8 value="31"/><uint8 value="7"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0001]LDSRC4 SR00 0x0000--><uint8 value="3"/><uint8 value="0"/><uint16 value="0"/>
        <!--[0002]INCI32 SR00--><uint8 value="12"/><uint8 value="0"/><uint16 value="65535"/>
        <!--[0003]LDSRSR SR01 SR00--><uint8 value="4"/><uint8 value="1"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0004]DECI32 SR00--><uint8 value="13"/><uint8 value="0"/><uint16 value="65535"/>
        <!--[0005]LDSRSR SR02 SR00--><uint8 value="4"/><uint8 value="2"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0006]LDSRSR SR03 SR00--><uint8 value="4"/><uint8 value="3"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0007]NEGS32 SR04 SR00--><uint8 value="14"/><uint8 value="4"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0008]NTI32  SR05 SR00--><uint8 value="24"/><uint8 value="5"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0009]LDSRC4 SR06 0x0004--><uint8 value="3"/><uint8 value="6"/><uint16 value="4"/>
        <!--[000A]EQI32  SR06 SR00 SR06--><uint8 value="17"/><uint8 value="6"/><uint8 value="0"/><uint8 value="6"/>
        <!--[000B]NTBOOL SR06 SR06--><uint8 value="25"/><uint8 value="6"/><uint8 value="6"/><uint8 value="255"/>
        <!--[000C]FLEAVE 0x07--><uint8 value="32"/><uint8 value="7"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.DeclBoolVar())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.DeclBoolVar()"/>
        <!--name--><string_ref value="DeclBoolVar"/>
        <reference label_name="LabelOpCode:App.EntryPoint.DeclBoolVar()"/>
    <!--BCOpCode(App.EntryPoint.DeclBoolVar())-20bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.DeclBoolVar()"/>
        <!--[0000]FENTER 0x03 0x00--><uint8 value="31"/><uint8 value="3"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0001]LDSRZR SR00--><uint8 value="1"/><uint8 value="0"/><uint16 value="65535"/>
        <!--[0002]LDSRBT SR01--><uint8 value="2"/><uint8 value="1"/><uint16 value="65535"/>
        <!--[0003]LDSRZR SR02--><uint8 value="1"/><uint8 value="2"/><uint16 value="65535"/>
        <!--[0004]FLEAVE 0x03--><uint8 value="32"/><uint8 value="3"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.RelationalOp())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.RelationalOp()"/>
        <!--name--><string_ref value="RelationalOp"/>
        <reference label_name="LabelOpCode:App.EntryPoint.RelationalOp()"/>
    <!--BCOpCode(App.EntryPoint.RelationalOp())-56bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.RelationalOp()"/>
        <!--[0000]FENTER 0x05 0x00--><uint8 value="31"/><uint8 value="5"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0001]LDSRC4 SR00 0x0000--><uint8 value="3"/><uint8 value="0"/><uint16 value="0"/>
        <!--[0002]LDSRC4 SR01 0x0008--><uint8 value="3"/><uint8 value="1"/><uint16 value="8"/>
        <!--[0003]LTS32  SR00 SR00 SR01--><uint8 value="15"/><uint8 value="0"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0004]LDSRC4 SR01 0x000C--><uint8 value="3"/><uint8 value="1"/><uint16 value="12"/>
        <!--[0005]LDSRC4 SR02 0x0010--><uint8 value="3"/><uint8 value="2"/><uint16 value="16"/>
        <!--[0006]LES32  SR01 SR01 SR02--><uint8 value="16"/><uint8 value="1"/><uint8 value="1"/><uint8 value="2"/>
        <!--[0007]LDSRC4 SR02 0x0014--><uint8 value="3"/><uint8 value="2"/><uint16 value="20"/>
        <!--[0008]LDSRC4 SR03 0x0018--><uint8 value="3"/><uint8 value="3"/><uint16 value="24"/>
        <!--[0009]LTS32  SR02 SR03 SR02--><uint8 value="15"/><uint8 value="2"/><uint8 value="3"/><uint8 value="2"/>
        <!--[000A]LDSRC4 SR03 0x001C--><uint8 value="3"/><uint8 value="3"/><uint16 value="28"/>
        <!--[000B]LDSRC4 SR04 0x0020--><uint8 value="3"/><uint8 value="4"/><uint16 value="32"/>
        <!--[000C]LES32  SR03 SR04 SR03--><uint8 value="16"/><uint8 value="3"/><uint8 value="4"/><uint8 value="3"/>
        <!--[000D]FLEAVE 0x05--><uint8 value="32"/><uint8 value="5"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.EqualityOp())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.EqualityOp()"/>
        <!--name--><string_ref value="EqualityOp"/>
        <reference label_name="LabelOpCode:App.EntryPoint.EqualityOp()"/>
    <!--BCOpCode(App.EntryPoint.EqualityOp())-40bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.EqualityOp()"/>
        <!--[0000]FENTER 0x04 0x00--><uint8 value="31"/><uint8 value="4"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0001]LDSRC4 SR00 0x0000--><uint8 value="3"/><uint8 value="0"/><uint16 value="0"/>
        <!--[0002]LDSRC4 SR01 0x0008--><uint8 value="3"/><uint8 value="1"/><uint16 value="8"/>
        <!--[0003]EQI32  SR00 SR00 SR01--><uint8 value="17"/><uint8 value="0"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0004]LDSRC4 SR01 0x0008--><uint8 value="3"/><uint8 value="1"/><uint16 value="8"/>
        <!--[0005]LDSRC4 SR02 0x000C--><uint8 value="3"/><uint8 value="2"/><uint16 value="12"/>
        <!--[0006]NEI32  SR01 SR01 SR02--><uint8 value="18"/><uint8 value="1"/><uint8 value="1"/><uint8 value="2"/>
        <!--[0007]EQBOOL SR02 SR00 SR01--><uint8 value="19"/><uint8 value="2"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0008]NEBOOL SR03 SR01 SR00--><uint8 value="20"/><uint8 value="3"/><uint8 value="1"/><uint8 value="0"/>
        <!--[0009]FLEAVE 0x04--><uint8 value="32"/><uint8 value="4"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.LogicalOp())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.LogicalOp()"/>
        <!--name--><string_ref value="LogicalOp"/>
        <reference label_name="LabelOpCode:App.EntryPoint.LogicalOp()"/>
    <!--BCOpCode(App.EntryPoint.LogicalOp())-48bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.LogicalOp()"/>
        <!--[0000]FENTER 0x03 0x01--><uint8 value="31"/><uint8 value="3"/><uint8 value="1"/><uint8 value="255"/>
        <!--[0001]LDSRC4 SR01 0x0004--><uint8 value="3"/><uint8 value="1"/><uint16 value="4"/>
        <!--[0002]LES32  SR01 SR01 SR00--><uint8 value="16"/><uint8 value="1"/><uint8 value="1"/><uint8 value="0"/>
        <!--[0003]JMPNEG SR01 +00003--><uint8 value="30"/><uint8 value="1"/><sint16 value="3"/>
        <!--[0004]LDSRC4 SR01 0x0024--><uint8 value="3"/><uint8 value="1"/><uint16 value="36"/>
        <!--[0005]LTS32  SR01 SR00 SR01--><uint8 value="15"/><uint8 value="1"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0006]LDSRC4 SR02 0x0004--><uint8 value="3"/><uint8 value="2"/><uint16 value="4"/>
        <!--[0007]LTS32  SR02 SR02 SR00--><uint8 value="15"/><uint8 value="2"/><uint8 value="2"/><uint8 value="0"/>
        <!--[0008]JMPPOS SR02 +00003--><uint8 value="29"/><uint8 value="2"/><sint16 value="3"/>
        <!--[0009]LDSRC4 SR02 0x0024--><uint8 value="3"/><uint8 value="2"/><uint16 value="36"/>
        <!--[000A]LES32  SR02 SR02 SR00--><uint8 value="16"/><uint8 value="2"/><uint8 value="2"/><uint8 value="0"/>
        <!--[000B]FLEAVE 0x03--><uint8 value="32"/><uint8 value="3"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.While())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.While()"/>
        <!--name--><string_ref value="While"/>
        <reference label_name="LabelOpCode:App.EntryPoint.While()"/>
    <!--BCOpCode(App.EntryPoint.While())-80bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.While()"/>
        <!--[0000]FENTER 0x02 0x00--><uint8 value="31"/><uint8 value="2"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0001]LDSRC4 SR00 0x0004--><uint8 value="3"/><uint8 value="0"/><uint16 value="4"/>
        <!--[0002]LDSRC4 SR01 0x0024--><uint8 value="3"/><uint8 value="1"/><uint16 value="36"/>
        <!--[0003]LTS32  SR01 SR00 SR01--><uint8 value="15"/><uint8 value="1"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0004]JMPNEG SR01 +00003--><uint8 value="30"/><uint8 value="1"/><sint16 value="3"/>
        <!--[0005]INCI32 SR00--><uint8 value="12"/><uint8 value="0"/><uint16 value="65535"/>
        <!--[0006]JMP    -00004--><uint8 value="28"/><uint8 value="255"/><sint16 value="-4"/>
        <!--[0007]LDSRC4 SR01 0x0024--><uint8 value="3"/><uint8 value="1"/><uint16 value="36"/>
        <!--[0008]LTS32  SR01 SR00 SR01--><uint8 value="15"/><uint8 value="1"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0009]JMPNEG SR01 +00005--><uint8 value="30"/><uint8 value="1"/><sint16 value="5"/>
        <!--[000A]LDSRC4 SR01 0x0000--><uint8 value="3"/><uint8 value="1"/><uint16 value="0"/>
        <!--[000B]ADDI32 SR00 SR00 SR01--><uint8 value="7"/><uint8 value="0"/><uint8 value="0"/><uint8 value="1"/>
        <!--[000C]JMP    -00005--><uint8 value="28"/><uint8 value="255"/><sint16 value="-5"/>
        <!--[000D]JMP    -00006--><uint8 value="28"/><uint8 value="255"/><sint16 value="-6"/>
        <!--[000E]LDSRC4 SR01 0x0024--><uint8 value="3"/><uint8 value="1"/><uint16 value="36"/>
        <!--[000F]LTS32  SR01 SR00 SR01--><uint8 value="15"/><uint8 value="1"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0010]JMPNEG SR01 +00003--><uint8 value="30"/><uint8 value="1"/><sint16 value="3"/>
        <!--[0011]JMP    +00002--><uint8 value="28"/><uint8 value="255"/><sint16 value="2"/>
        <!--[0012]JMP    -00004--><uint8 value="28"/><uint8 value="255"/><sint16 value="-4"/>
        <!--[0013]FLEAVE 0x02--><uint8 value="32"/><uint8 value="2"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.If())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.If()"/>
        <!--name--><string_ref value="If"/>
        <reference label_name="LabelOpCode:App.EntryPoint.If()"/>
    <!--BCOpCode(App.EntryPoint.If())-60bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.If()"/>
        <!--[0000]FENTER 0x04 0x02--><uint8 value="31"/><uint8 value="4"/><uint8 value="2"/><uint8 value="255"/>
        <!--[0001]LDSRZR SR02--><uint8 value="1"/><uint8 value="2"/><uint16 value="65535"/>
        <!--[0002]EQI32  SR03 SR00 SR01--><uint8 value="17"/><uint8 value="3"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0003]JMPNEG SR03 +00003--><uint8 value="30"/><uint8 value="3"/><sint16 value="3"/>
        <!--[0004]LDSRC4 SR02 0x0004--><uint8 value="3"/><uint8 value="2"/><uint16 value="4"/>
        <!--[0005]JMP    +00009--><uint8 value="28"/><uint8 value="255"/><sint16 value="9"/>
        <!--[0006]LTS32  SR03 SR00 SR01--><uint8 value="15"/><uint8 value="3"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0007]JMPNEG SR03 +00004--><uint8 value="30"/><uint8 value="3"/><sint16 value="4"/>
        <!--[0008]LDSRC4 SR03 0x0000--><uint8 value="3"/><uint8 value="3"/><uint16 value="0"/>
        <!--[0009]NEGS32 SR02 SR03--><uint8 value="14"/><uint8 value="2"/><uint8 value="3"/><uint8 value="255"/>
        <!--[000A]JMP    +00004--><uint8 value="28"/><uint8 value="255"/><sint16 value="4"/>
        <!--[000B]LTS32  SR03 SR01 SR00--><uint8 value="15"/><uint8 value="3"/><uint8 value="1"/><uint8 value="0"/>
        <!--[000C]JMPNEG SR03 +00002--><uint8 value="30"/><uint8 value="3"/><sint16 value="2"/>
        <!--[000D]LDSRC4 SR02 0x0000--><uint8 value="3"/><uint8 value="2"/><uint16 value="0"/>
        <!--[000E]FLEAVE 0x04--><uint8 value="32"/><uint8 value="4"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.DoWhile())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.DoWhile()"/>
        <!--name--><string_ref value="DoWhile"/>
        <reference label_name="LabelOpCode:App.EntryPoint.DoWhile()"/>
    <!--BCOpCode(App.EntryPoint.DoWhile())-56bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.DoWhile()"/>
        <!--[0000]FENTER 0x03 0x01--><uint8 value="31"/><uint8 value="3"/><uint8 value="1"/><uint8 value="255"/>
        <!--[0001]LDSRC4 SR01 0x0000--><uint8 value="3"/><uint8 value="1"/><uint16 value="0"/>
        <!--[0002]ADDI32 SR01 SR01 SR01--><uint8 value="7"/><uint8 value="1"/><uint8 value="1"/><uint8 value="1"/>
        <!--[0003]LDSRC4 SR02 0x0014--><uint8 value="3"/><uint8 value="2"/><uint16 value="20"/>
        <!--[0004]EQI32  SR02 SR01 SR02--><uint8 value="17"/><uint8 value="2"/><uint8 value="1"/><uint8 value="2"/>
        <!--[0005]JMPNEG SR02 +00002--><uint8 value="30"/><uint8 value="2"/><sint16 value="2"/>
        <!--[0006]JMP    +00007--><uint8 value="28"/><uint8 value="255"/><sint16 value="7"/>
        <!--[0007]LDSRC4 SR02 0x0018--><uint8 value="3"/><uint8 value="2"/><uint16 value="24"/>
        <!--[0008]EQI32  SR02 SR01 SR02--><uint8 value="17"/><uint8 value="2"/><uint8 value="1"/><uint8 value="2"/>
        <!--[0009]JMPNEG SR02 +00002--><uint8 value="30"/><uint8 value="2"/><sint16 value="2"/>
        <!--[000A]JMP    +00001--><uint8 value="28"/><uint8 value="255"/><sint16 value="1"/>
        <!--[000B]LTS32  SR02 SR01 SR00--><uint8 value="15"/><uint8 value="2"/><uint8 value="1"/><uint8 value="0"/>
        <!--[000C]JMPPOS SR02 -00010--><uint8 value="29"/><uint8 value="2"/><sint16 value="-10"/>
        <!--[000D]FLEAVE 0x03--><uint8 value="32"/><uint8 value="3"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.For())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.For()"/>
        <!--name--><string_ref value="For"/>
        <reference label_name="LabelOpCode:App.EntryPoint.For()"/>
    <!--BCOpCode(App.EntryPoint.For())-72bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.For()"/>
        <!--[0000]FENTER 0x03 0x00--><uint8 value="31"/><uint8 value="3"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0001]LDSRC4 SR00 0x0004--><uint8 value="3"/><uint8 value="0"/><uint16 value="4"/>
        <!--[0002]JMP    +00002--><uint8 value="28"/><uint8 value="255"/><sint16 value="2"/>
        <!--[0003]INCI32 SR00--><uint8 value="12"/><uint8 value="0"/><uint16 value="65535"/>
        <!--[0004]LDSRC4 SR01 0x0024--><uint8 value="3"/><uint8 value="1"/><uint16 value="36"/>
        <!--[0005]LTS32  SR01 SR00 SR01--><uint8 value="15"/><uint8 value="1"/><uint8 value="0"/><uint8 value="1"/>
        <!--[0006]JMPNEG SR01 +00011--><uint8 value="30"/><uint8 value="1"/><sint16 value="11"/>
        <!--[0007]LDSRC4 SR01 0x0004--><uint8 value="3"/><uint8 value="1"/><uint16 value="4"/>
        <!--[0008]JMP    +00002--><uint8 value="28"/><uint8 value="255"/><sint16 value="2"/>
        <!--[0009]INCI32 SR01--><uint8 value="12"/><uint8 value="1"/><uint16 value="65535"/>
        <!--[000A]LDSRC4 SR02 0x0024--><uint8 value="3"/><uint8 value="2"/><uint16 value="36"/>
        <!--[000B]LTS32  SR02 SR01 SR02--><uint8 value="15"/><uint8 value="2"/><uint8 value="1"/><uint8 value="2"/>
        <!--[000C]JMPNEG SR02 +00003--><uint8 value="30"/><uint8 value="2"/><sint16 value="3"/>
        <!--[000D]JMP    +00002--><uint8 value="28"/><uint8 value="255"/><sint16 value="2"/>
        <!--[000E]JMP    -00005--><uint8 value="28"/><uint8 value="255"/><sint16 value="-5"/>
        <!--[000F]JMP    -00012--><uint8 value="28"/><uint8 value="255"/><sint16 value="-12"/>
        <!--[0010]JMP    -00013--><uint8 value="28"/><uint8 value="255"/><sint16 value="-13"/>
        <!--[0011]FLEAVE 0x03--><uint8 value="32"/><uint8 value="3"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.ReturnNoType())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.ReturnNoType()"/>
        <!--name--><string_ref value="ReturnNoType"/>
        <reference label_name="LabelOpCode:App.EntryPoint.ReturnNoType()"/>
    <!--BCOpCode(App.EntryPoint.ReturnNoType())-12bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.ReturnNoType()"/>
        <!--[0000]FENTER 0x00 0x00--><uint8 value="31"/><uint8 value="0"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0001]JMP    +00001--><uint8 value="28"/><uint8 value="255"/><sint16 value="1"/>
        <!--[0002]FLEAVE 0x00--><uint8 value="32"/><uint8 value="0"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.ReturnBool())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.ReturnBool()"/>
        <!--name--><string_ref value="ReturnBool"/>
        <reference label_name="LabelOpCode:App.EntryPoint.ReturnBool()"/>
    <!--BCOpCode(App.EntryPoint.ReturnBool())-44bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.ReturnBool()"/>
        <!--[0000]FENTER 0x04 0x02--><uint8 value="31"/><uint8 value="4"/><uint8 value="2"/><uint8 value="255"/>
        <!--[0001]LDSRC4 SR02 0x0008--><uint8 value="3"/><uint8 value="2"/><uint16 value="8"/>
        <!--[0002]MODS32 SR02 SR01 SR02--><uint8 value="11"/><uint8 value="2"/><uint8 value="1"/><uint8 value="2"/>
        <!--[0003]LDSRC4 SR03 0x0004--><uint8 value="3"/><uint8 value="3"/><uint16 value="4"/>
        <!--[0004]EQI32  SR02 SR02 SR03--><uint8 value="17"/><uint8 value="2"/><uint8 value="2"/><uint8 value="3"/>
        <!--[0005]JMPNEG SR02 +00003--><uint8 value="30"/><uint8 value="2"/><sint16 value="3"/>
        <!--[0006]LDSRBT SR00--><uint8 value="2"/><uint8 value="0"/><uint16 value="65535"/>
        <!--[0007]JMP    +00003--><uint8 value="28"/><uint8 value="255"/><sint16 value="3"/>
        <!--[0008]LDSRZR SR00--><uint8 value="1"/><uint8 value="0"/><uint16 value="65535"/>
        <!--[0009]JMP    +00001--><uint8 value="28"/><uint8 value="255"/><sint16 value="1"/>
        <!--[000A]FLEAVE 0x04--><uint8 value="32"/><uint8 value="4"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.FuncVoidNoArg())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.FuncVoidNoArg()"/>
        <!--name--><string_ref value="FuncVoidNoArg"/>
        <reference label_name="LabelOpCode:App.EntryPoint.FuncVoidNoArg()"/>
    <!--BCOpCode(App.EntryPoint.FuncVoidNoArg())-8bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.FuncVoidNoArg()"/>
        <!--[0000]FENTER 0x00 0x00--><uint8 value="31"/><uint8 value="0"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0001]FLEAVE 0x00--><uint8 value="32"/><uint8 value="0"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.CallFuncVoidNoArg())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.CallFuncVoidNoArg()"/>
        <!--name--><string_ref value="CallFuncVoidNoArg"/>
        <reference label_name="LabelOpCode:App.EntryPoint.CallFuncVoidNoArg()"/>
    <!--BCOpCode(App.EntryPoint.CallFuncVoidNoArg())-12bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.CallFuncVoidNoArg()"/>
        <!--[0000]FENTER 0x00 0x00--><uint8 value="31"/><uint8 value="0"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0001]CALL   App.EntryPoint.FuncVoidNoArg()--><uint8 value="33"/><uint8 value="255"/><uint16 value="0"/>
        <!--[0002]FLEAVE 0x00--><uint8 value="32"/><uint8 value="0"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.FuncIntNoArg())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.FuncIntNoArg()"/>
        <!--name--><string_ref value="FuncIntNoArg"/>
        <reference label_name="LabelOpCode:App.EntryPoint.FuncIntNoArg()"/>
    <!--BCOpCode(App.EntryPoint.FuncIntNoArg())-16bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.FuncIntNoArg()"/>
        <!--[0000]FENTER 0x01 0x01--><uint8 value="31"/><uint8 value="1"/><uint8 value="1"/><uint8 value="255"/>
        <!--[0001]LDSRC4 SR00 0x0000--><uint8 value="3"/><uint8 value="0"/><uint16 value="0"/>
        <!--[0002]JMP    +00001--><uint8 value="28"/><uint8 value="255"/><sint16 value="1"/>
        <!--[0003]FLEAVE 0x01--><uint8 value="32"/><uint8 value="1"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.CallFuncIntNoArg())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.CallFuncIntNoArg()"/>
        <!--name--><string_ref value="CallFuncIntNoArg"/>
        <reference label_name="LabelOpCode:App.EntryPoint.CallFuncIntNoArg()"/>
    <!--BCOpCode(App.EntryPoint.CallFuncIntNoArg())-16bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.CallFuncIntNoArg()"/>
        <!--[0000]FENTER 0x01 0x00--><uint8 value="31"/><uint8 value="1"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0001]CALL   App.EntryPoint.FuncIntNoArg()--><uint8 value="33"/><uint8 value="255"/><uint16 value="1"/>
        <!--[0002]LDSRFZ SR00--><uint8 value="5"/><uint8 value="0"/><uint16 value="65535"/>
        <!--[0003]FLEAVE 0x01--><uint8 value="32"/><uint8 value="1"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.FuncIntWithArg())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.FuncIntWithArg()"/>
        <!--name--><string_ref value="FuncIntWithArg"/>
        <reference label_name="LabelOpCode:App.EntryPoint.FuncIntWithArg()"/>
    <!--BCOpCode(App.EntryPoint.FuncIntWithArg())-20bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.FuncIntWithArg()"/>
        <!--[0000]FENTER 0x02 0x02--><uint8 value="31"/><uint8 value="2"/><uint8 value="2"/><uint8 value="255"/>
        <!--[0001]LDSRC4 SR00 0x0000--><uint8 value="3"/><uint8 value="0"/><uint16 value="0"/>
        <!--[0002]ADDI32 SR00 SR01 SR00--><uint8 value="7"/><uint8 value="0"/><uint8 value="1"/><uint8 value="0"/>
        <!--[0003]JMP    +00001--><uint8 value="28"/><uint8 value="255"/><sint16 value="1"/>
        <!--[0004]FLEAVE 0x02--><uint8 value="32"/><uint8 value="2"/><uint16 value="65535"/>
    <!--BCFunction(App.EntryPoint.CallFuncIntWithArg())-->
        <align value="4"/>
        <label name="LabelFunction:App.EntryPoint.CallFuncIntWithArg()"/>
        <!--name--><string_ref value="CallFuncIntWithArg"/>
        <reference label_name="LabelOpCode:App.EntryPoint.CallFuncIntWithArg()"/>
    <!--BCOpCode(App.EntryPoint.CallFuncIntWithArg())-24bytes-->
        <align value="4"/>
        <label name="LabelOpCode:App.EntryPoint.CallFuncIntWithArg()"/>
        <!--[0000]FENTER 0x02 0x00--><uint8 value="31"/><uint8 value="2"/><uint8 value="0"/><uint8 value="255"/>
        <!--[0001]LDSRC4 SR01 0x0000--><uint8 value="3"/><uint8 value="1"/><uint16 value="0"/>
        <!--[0002]LDFRSR FR01 SR01--><uint8 value="6"/><uint8 value="1"/><uint8 value="1"/><uint8 value="255"/>
        <!--[0003]CALL   App.EntryPoint.FuncIntWithArg()--><uint8 value="33"/><uint8 value="255"/><uint16 value="2"/>
        <!--[0004]LDSRFZ SR00--><uint8 value="5"/><uint8 value="0"/><uint16 value="65535"/>
        <!--[0005]FLEAVE 0x02--><uint8 value="32"/><uint8 value="2"/><uint16 value="65535"/>
</xdata_root>
}}

* 仕様変更履歴 [#a0f3a6ff]
:2010/08/08|
- 変更点が多すぎて履歴を保守していくのが大変になってきた・・・。svnのログでも貼り付けようかしら。

:2010/08/06|
- VM
-- 命令コード,ゼロ代入とtrue代入を追加。

:2010/08/05|
- VM
-- 命令コード,比較演算を追加。

:2010/08/04|
- Language
-- ver1.0ではint32,uint32,float32に絞る。
-- 8bit,16bit,64bitの数値はサポートしない。

:2010/08/03|
- VM
-- 最大引数の仕様を変更(voidな戻り値の関数は+1)

:2010/07/31|
- Language
-- インターフェースの委譲を削除。
-- 固定長配列をver2.0に変更。
-- publicメンバ変数のラッパー関数仕様を削除。オフセット位置をリンク時に計算する仕様に変更。
-- invariantの実装をver2.0に変更。

    ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS