From: Michael D. Lowis Date: Fri, 11 Oct 2013 13:57:33 +0000 (-0400) Subject: Replace slas C code with Scheme code X-Git-Url: https://git.mdlowis.com/?a=commitdiff_plain;h=5b2d25940a5a7b5b221881248306c33d8676d074;p=proto%2Fsclpl.git Replace slas C code with Scheme code --- diff --git a/SConstruct b/SConstruct index 9f45013..514ac03 100644 --- a/SConstruct +++ b/SConstruct @@ -53,6 +53,7 @@ scheme = Environment( ENV = os.environ, CCFLAGS = [ '-explicit-use', '-I', 'inc'], LDFLAGS = [], + TOOLS = [ 'mingw' ], BUILDERS = { 'Program': scheme_linker, 'TestRunner': scheme_tester }) @@ -82,7 +83,7 @@ scheme.Program('build/slc', find_files('source/compiler/','*.scm')) scheme.Program('build/slpkg', find_files('source/slpkg/','*.scm')) # SCLPL Assembler -c_cpp.Program('build/slas', find_files('source/slas/','*.c')) +scheme.Program('build/slas', find_files('source/slas/','*.scm')) # SCLPL Virtual Machine c_cpp.Program('build/slvm', find_files('source/slvm/','*.c')) diff --git a/source/slas/main.c b/source/slas/main.c deleted file mode 100644 index ebb6f0d..0000000 --- a/source/slas/main.c +++ /dev/null @@ -1,61 +0,0 @@ -#include - -static int assemble_file(char* infile, char* outfile); -static int generate_bytecode(FILE* ifh, FILE* ofh); - -static char usage[] = - "\nUsage: slas \n\n" - "Assemble to SCLPL bytecode and write the result to .\n" ; - -static char buffer[1024] = { 0 }; - -int main(int argc, char** argv) -{ - int ret = 0; - if (argc == 3) - { - ret = assemble_file(argv[1],argv[2]); - } - else - { - puts(usage); - } - return ret; -} - -static int assemble_file(char* infile, char* outfile) -{ - int ret = 1; - FILE* ifh = fopen(infile, "r"); - FILE* ofh = fopen(outfile, "w"); - if (ifh && ofh) - { - ret = generate_bytecode(ifh,ofh); - } - fclose(ifh); - fclose(ofh); - fclose(NULL); - return ret; -} - -static int generate_bytecode(FILE* ifh, FILE* ofh) -{ - int ret = 0; - //asm_ctx_t context; - //asm_init(&context); - while(!feof(ifh)) - { - if (fgets(buffer,1023,ifh)) - { - puts(buffer); - } - else - { - ret = 1; - break; - } - } - return ret; -} - - diff --git a/source/slas/main.scm b/source/slas/main.scm new file mode 100644 index 0000000..bf7d6f2 --- /dev/null +++ b/source/slas/main.scm @@ -0,0 +1,22 @@ +(declare (uses library)) + +(define usage +"\nUsage: slas + +Assemble to SCLPL bytecode and write the result to .\n") + +; Control Routines +;------------------------------------------------------------------------------ +(define (assemble-file infile outfile) + (define iprt (open-input-file infile)) + (define oprt (open-output-file outfile)) + (generate-bytecode iprt oprt)) + +(define (generate-bytecode iprt oprt) '()) + +; Main routine +;------------------------------------------------------------------------------ +(if (= 2 (length (command-line-arguments))) + (apply assemble-file (command-line-arguments)) + (print usage)) +(exit)