1
1
mirror of https://github.com/kanaka/mal.git synced 2024-10-27 22:58:00 +03:00

bbc-basic: Move argv extraction into its own function.

That way it's not in the way as it gets more complicated.
This commit is contained in:
Ben Harris 2019-05-11 01:18:52 +01:00
parent 5881fe2334
commit cbc6f3fb23
4 changed files with 64 additions and 40 deletions

View File

@ -27,16 +27,7 @@ REPEAT
IF form$ <> "" THEN val$ = FNrep(form$)
UNTIL form$ = ""
REM Parse the command-line.
argv% = FNempty
IF !PAGE = &D7C1C7C5 THEN
REM Running under Brandy, so ARGC and ARGV$ are usable.
IF ARGC >= 1 THEN
FOR i% = ARGC TO 1 STEP -1
argv% = FNalloc_pair(FNalloc_string(ARGV$(i%)), argv%)
NEXT i%
ENDIF
ENDIF
argv% = FNget_argv
IF FNis_empty(argv%) THEN
PROCenv_set(repl_env%, FNalloc_symbol("*ARGV*"), FNempty)
@ -149,6 +140,21 @@ DEF FNeval_ast(ast%, env%)
ENDIF
=ast%
DEF FNget_argv
PROCgc_enter
LOCAL argv%
argv% = FNempty
IF !PAGE = &D7C1C7C5 THEN
REM Running under Brandy, so ARGC and ARGV$ are usable.
IF ARGC >= 1 THEN
FOR i% = ARGC TO 1 STEP -1
argv% = FNalloc_pair(FNalloc_string(ARGV$(i%)), argv%)
NEXT i%
ENDIF
ENDIF
=FNgc_exit(argv%)
REM Local Variables:
REM indent-tabs-mode: nil
REM End:

View File

@ -27,16 +27,7 @@ REPEAT
IF form$ <> "" THEN val$ = FNrep(form$)
UNTIL form$ = ""
REM Parse the command-line.
argv% = FNempty
IF !PAGE = &D7C1C7C5 THEN
REM Running under Brandy, so ARGC and ARGV$ are usable.
IF ARGC >= 1 THEN
FOR i% = ARGC TO 1 STEP -1
argv% = FNalloc_pair(FNalloc_string(ARGV$(i%)), argv%)
NEXT i%
ENDIF
ENDIF
argv% = FNget_argv
IF FNis_empty(argv%) THEN
PROCenv_set(repl_env%, FNalloc_symbol("*ARGV*"), FNempty)
@ -174,6 +165,21 @@ DEF FNeval_ast(ast%, env%)
ENDIF
=ast%
DEF FNget_argv
PROCgc_enter
LOCAL argv%
argv% = FNempty
IF !PAGE = &D7C1C7C5 THEN
REM Running under Brandy, so ARGC and ARGV$ are usable.
IF ARGC >= 1 THEN
FOR i% = ARGC TO 1 STEP -1
argv% = FNalloc_pair(FNalloc_string(ARGV$(i%)), argv%)
NEXT i%
ENDIF
ENDIF
=FNgc_exit(argv%)
REM Local Variables:
REM indent-tabs-mode: nil
REM End:

View File

@ -29,16 +29,7 @@ REPEAT
IF form$ <> "" THEN val$ = FNrep(form$)
UNTIL form$ = ""
REM Parse the command-line.
argv% = FNempty
IF !PAGE = &D7C1C7C5 THEN
REM Running under Brandy, so ARGC and ARGV$ are usable.
IF ARGC >= 1 THEN
FOR i% = ARGC TO 1 STEP -1
argv% = FNalloc_pair(FNalloc_string(ARGV$(i%)), argv%)
NEXT i%
ENDIF
ENDIF
argv% = FNget_argv
IF FNis_empty(argv%) THEN
PROCenv_set(repl_env%, FNalloc_symbol("*ARGV*"), FNempty)
@ -206,6 +197,21 @@ DEF FNeval_ast(ast%, env%)
ENDIF
=ast%
DEF FNget_argv
PROCgc_enter
LOCAL argv%
argv% = FNempty
IF !PAGE = &D7C1C7C5 THEN
REM Running under Brandy, so ARGC and ARGV$ are usable.
IF ARGC >= 1 THEN
FOR i% = ARGC TO 1 STEP -1
argv% = FNalloc_pair(FNalloc_string(ARGV$(i%)), argv%)
NEXT i%
ENDIF
ENDIF
=FNgc_exit(argv%)
REM Local Variables:
REM indent-tabs-mode: nil
REM End:

View File

@ -29,16 +29,7 @@ REPEAT
IF form$ <> "" THEN val$ = FNrep(form$)
UNTIL form$ = ""
REM Parse the command-line.
argv% = FNempty
IF !PAGE = &D7C1C7C5 THEN
REM Running under Brandy, so ARGC and ARGV$ are usable.
IF ARGC >= 1 THEN
FOR i% = ARGC TO 1 STEP -1
argv% = FNalloc_pair(FNalloc_string(ARGV$(i%)), argv%)
NEXT i%
ENDIF
ENDIF
argv% = FNget_argv
IF FNis_empty(argv%) THEN
PROCenv_set(repl_env%, FNalloc_symbol("*ARGV*"), FNempty)
@ -241,6 +232,21 @@ DEF FNeval_ast(ast%, env%)
ENDIF
=ast%
DEF FNget_argv
PROCgc_enter
LOCAL argv%
argv% = FNempty
IF !PAGE = &D7C1C7C5 THEN
REM Running under Brandy, so ARGC and ARGV$ are usable.
IF ARGC >= 1 THEN
FOR i% = ARGC TO 1 STEP -1
argv% = FNalloc_pair(FNalloc_string(ARGV$(i%)), argv%)
NEXT i%
ENDIF
ENDIF
=FNgc_exit(argv%)
REM Local Variables:
REM indent-tabs-mode: nil
REM End: