Changeset 5993

Show
Ignore:
Timestamp:
02/02/08 00:00:57 (6 years ago)
Author:
mokehehe
Message:

builtin を自動に組込みに
コマンドラインオプションでファイルを実行できるように

Location:
lang/c/misc/mlisp
Files:
3 modified
1 moved

Legend:

Unmodified
Added
Removed
  • lang/c/misc/mlisp/mlisp.vcproj

    r5975 r5993  
    3333                        <Tool 
    3434                                Name="VCLinkerTool" 
    35                                 OutputFile="$(OutDir)/mlisp.exe" 
     35                                OutputFile="mlisp.exe" 
    3636                                LinkIncremental="2" 
    3737                                GenerateDebugInformation="TRUE" 
     
    7979                        <Tool 
    8080                                Name="VCLinkerTool" 
    81                                 OutputFile="$(OutDir)/mlisp.exe" 
     81                                OutputFile="mlisp.exe" 
    8282                                LinkIncremental="1" 
    8383                                GenerateDebugInformation="TRUE" 
  • lang/c/misc/mlisp/src/ml_builtin.h

    r5975 r5993  
    33#include "mlisp.h" 
    44 
     5#ifdef __cplusplus 
     6extern "C" { 
     7#endif 
     8 
    59void ml_define_default_builtins(MLContext* ml); 
     10 
     11#ifdef __cplusplus 
     12} //extern "C" 
     13#endif 
  • lang/c/misc/mlisp/src/mlisp.cpp

    r5979 r5993  
    949949//============================================================================= 
    950950 
    951 MLContext* ml_new(void)                                                                                         { return new MLContext; } 
     951#include "ml_builtin.h" 
     952 
     953MLContext* ml_new(void) 
     954{ 
     955        MLContext* ml = new MLContext; 
     956        ml_define_default_builtins(ml); 
     957        return ml; 
     958} 
    952959void ml_delete(MLContext* ml)                                                                           { delete ml; } 
    953960 
  • lang/c/misc/mlisp/test/main.c

    r5975 r5993  
    22#include <string.h> 
    33#include "mlisp.h" 
    4 #include "ml_builtin.h" 
    54 
    65#ifndef FALSE 
     
    5352} 
    5453 
     54/// �Θb�‹� 
     55int eval_file(MLContext* ml, const char* fn) 
     56{ 
     57        FILE* fp = fopen(fn, "r"); 
     58        if (fp == NULL) { 
     59                return FALSE; 
     60        } 
     61 
     62        for (;;) { 
     63                SExp r = ml_read(ml, fp); 
     64                if (r == cEOF)  break; 
     65                if (r == cNL)   continue; 
     66 
     67                ml_eval(ml, r); 
     68        } 
     69 
     70        return TRUE; 
     71} 
     72 
    5573/// �G���g���|�C���g 
    5674int main(int argc, char* argv[]) 
     
    5876        MLContext* ml = ml_new(); 
    5977 
    60         ml_define_default_builtins(ml); 
    61         interact(ml, stdin, stdout); 
     78        if (argc < 2) { 
     79                interact(ml, stdin, stdout); 
     80        } else { 
     81                int i; 
     82                for (i=0; ++i<argc; ) { 
     83                        const char* fn = argv[i]; 
     84                        eval_file(ml, fn); 
     85                } 
     86        } 
    6287 
    6388        ml_delete(ml);