示例#1
0
void
CfrTil_Key ( )
{
#if 0    
    ReadLine_Key ( _Context_->ReadLiner0 ) ;
    _DataStack_Push ( _Context_->ReadLiner0->InputKeyedCharacter ) ;
#else
    _DataStack_Push ( Key ( ) ) ;

#endif    
}
示例#2
0
文件: system.c 项目: 8l/openvmtil
void
CfrTil_dlsym ( )
{
    char * sym = ( char* ) _DataStack_Pop ( ) ;
    char * lib = ( char* ) _DataStack_Pop ( ) ;
    _DataStack_Push ( ( int ) _dlsym ( lib, sym ) ) ;
}
示例#3
0
文件: file.c 项目: 8l/openvmtil
void
File_Tell ( )
{
    FILE * file = ( FILE * ) _DataStack_Pop ( ) ;
    int32 result = ftell ( file ) ;
    _DataStack_Push ( result ) ;
}
示例#4
0
文件: systems.c 项目: 8l/openvmtil
void
CfrTil_Filename ( )
{
    byte * filename = _Context_->ReadLiner0->bp_Filename ;
    if ( ! filename ) filename = ( byte* ) "command line" ;
    _DataStack_Push ( ( int32 ) filename ) ;
}
示例#5
0
void
CfrTil_Parse ( )
{
    Lexer * lexer = _Context_->Lexer0 ;
    byte * token = ( byte* ) _DataStack_Pop ( ) ;
    Lexer_ParseObject ( lexer, token ) ;
    _DataStack_Push ( lexer->Literal ) ;
}
示例#6
0
文件: file.c 项目: 8l/openvmtil
void
File_Open ( )
{
    byte * filename = ( byte* ) _DataStack_Pop ( ) ;
    FILE * file = fopen ( ( char* ) filename, "r" ) ;
    if ( file == NULL )
    {
        perror ( "\nFile_Open error : " ) ;
        CfrTil_Quit ( ) ;
    }
    else _DataStack_Push ( ( int32 ) file ) ;
}
示例#7
0
文件: file.c 项目: 8l/openvmtil
void
File_Read ( )
{
    int32 size = _DataStack_Pop ( ) ;
    byte * ptr = ( byte * ) _DataStack_Pop ( ) ;
    FILE * file = ( FILE * ) _DataStack_Pop ( ) ;
    int32 result = fread ( ptr, size, 1, file ) ;
    _DataStack_Push ( result ) ;
    if ( result != size )
    {
        if ( ! feof ( file ) )
        {
            if ( ferror ( file ) )
            {
                perror ( "\nFile_Read error : " ) ;
                CfrTil_Quit ( ) ;
            }
        }
    }
}
示例#8
0
文件: blocks.c 项目: 8l/openvmtil
void
_CfrTil_EndBlock1 ( BlockInfo * bi )
{
    Compiler * compiler = _Context_->Compiler0 ;
    if ( _Stack_IsEmpty ( compiler->BlockStack ) )
    {
        _CfrTil_InstallGotoCallPoints_Keyed ( bi, GI_RETURN ) ;
        if ( compiler->NumberOfRegisterVariables && ( compiler->NumberOfStackVariables == 1 ) &&
            Compiler_GetState ( compiler, ( RETURN_TOS | RETURN_EAX ) ) )
        {
            bi->bp_First = bi->Start ;
            if ( Compiler_GetState ( compiler, RETURN_EAX ) )
            {
                Compile_Move_EAX_To_TOS ( DSP ) ;
            }
        }
        else if ( _Compiler_IsFrameNecessary ( compiler ) && ( ! GetState ( compiler, DONT_REMOVE_STACK_VARIABLES ) ) )
        {
            if ( Compiler_GetState ( compiler, SAVE_ESP ) ) // SAVE_ESP is set by 'return'
            {
                _ESP_Setup ( ) ;
                bi->bp_First = bi->FrameStart ;
            }
            else bi->bp_First = bi->AfterEspSave ; // 3 : after ESP_Save code in frame setup code
            _Compiler_RemoveLocalFrame ( compiler ) ;
        }
        else
        {
            bi->bp_First = bi->Start ;
        }
    }
    _Compile_Return ( ) ;
    _DataStack_Push ( ( int32 ) bi->bp_First ) ;
    bi->bp_Last = Here ;
    _SetOffsetForCallOrJump ( bi->JumpOffset, Here, 0 ) ;
}
示例#9
0
void
CfrTil_Kbhit ( void )
{
    _DataStack_Push ( ( int32 ) kbhit ( ) ) ;
}
示例#10
0
文件: file.c 项目: 8l/openvmtil
void
File_Exists ()
{
    byte * name = ( byte* ) _DataStack_Pop ( ) ;
    _DataStack_Push ( _File_Exists ( name ) ) ;
}
示例#11
0
文件: file.c 项目: 8l/openvmtil
void
File_Size ( )
{
    FILE * file = ( FILE * ) _DataStack_Pop ( ) ;
    _DataStack_Push ( _File_Size ( file ) ) ;
}
示例#12
0
void
CfrTil_Interpreter_IsDone ( )
{
    _DataStack_Push ( GetState ( _Context_->Interpreter0, END_OF_FILE | END_OF_STRING | INTERPRETER_DONE ) ) ;
}
示例#13
0
文件: systems.c 项目: 8l/openvmtil
void
CfrTil_LineCharacterNumber ( )
{
    _DataStack_Push ( ( int32 ) _Context_->ReadLiner0->InputLineCharacterNumber ) ;
}
示例#14
0
void
CfrTil_Interpret_ReadToList ( )
{
    dllist * interpList = _CfrTil_Interpret_ReadToList ( ) ;
    _DataStack_Push ( ( int32 ) interpList ) ;
}
示例#15
0
void
CfrTil_Token ( )
{
    _DataStack_Push ( ( int32 ) Lexer_ReadToken ( _Context_->Lexer0 ) ) ;
}
示例#16
0
文件: systems.c 项目: 8l/openvmtil
void
CfrTil_AllocateNew ( )
{
    _DataStack_Push ( ( int32 ) _CfrTil_AllocateNew ( _DataStack_Pop ( ), OBJECT_MEMORY ) ) ;
}
示例#17
0
文件: systems.c 项目: 8l/openvmtil
void
CfrTil_DataStack_Size ( )
{
    _DataStack_Push ( DataStack_Depth ( ) ) ;
}
示例#18
0
void
CfrTil_Debugger_Verbosity ( )
{
    _DataStack_Push ( ( int32 ) & _Debugger_->Verbosity ) ;
}
示例#19
0
文件: finder.c 项目: 8l/openvmtil
void
CfrTil_Postfix_Find ( )
{
    Word * word = Finder_Word_FindUsing ( _Context_->Finder0, ( byte* ) _DataStack_Pop ( ) ) ;
    _DataStack_Push ( ( int32 ) word ) ;
}
示例#20
0
文件: finder.c 项目: 8l/openvmtil
void
CfrTil_Find ( )
{
    _DataStack_Push ( ( int32 ) Finder_FindToken ( _Context_->Finder0, _Context_->Lexer0->OriginalToken ) ) ;
}
示例#21
0
文件: systems.c 项目: 8l/openvmtil
void
CfrTil_LineNumber ( )
{
    _DataStack_Push ( ( int32 ) _Context_->ReadLiner0->i32_LineNumber ) ;
}
示例#22
0
void
CfrTil_TokenToWord ()
{
    byte * token = (byte*) _DataStack_Pop ( ) ;
    _DataStack_Push ( (int32) _Interpreter_TokenToWord ( _Context_->Interpreter0, token ) ) ;
}