cvsuser 03/07/08 02:44:39
Modified: languages/bf bfc.imc
Log:
work around segfault; add sanity checks
Revision Changes Path
1.2 +16 -7 parrot/languages/bf/bfc.imc
Index: bfc.imc
===================================================================
RCS file: /cvs/public/parrot/languages/bf/bfc.imc,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -w -r1.1 -r1.2
--- bfc.imc 6 Jul 2003 22:35:22 -0000 1.1
+++ bfc.imc 8 Jul 2003 09:44:39 -0000 1.2
@@ -1,4 +1,4 @@
-# $Id: bfc.imc,v 1.1 2003/07/06 22:35:22 acme Exp $
+# $Id: bfc.imc,v 1.2 2003/07/08 09:44:39 leo Exp $
# A Brainfuck compiler
# By Leon Brocard <[EMAIL PROTECTED]>
#
@@ -16,23 +16,32 @@
.local string program
.local string char
+ program = P0[0]
+ # check argc
+ I0 = P0
+ if I0 < 2 goto usage
# Get the filename
filename = P0[1]
if filename goto SOURCE
- program = P0[0]
- print "usage: ../imcc/imcc -r "
+usage:
+ print "usage: ../../parrot "
print program
print " file.bf\n"
end
# Read the file into S1
SOURCE:
- open I0, filename
+ open P1, filename, "<"
+ defined I0, P1
+ if I0, SOURCE_LOOP
+ print filename
+ print " not found\n"
+ branch usage
SOURCE_LOOP:
- readline line, I0
+ read line, P1, 1024
file = file . line
if line goto SOURCE_LOOP
- close I0
+ close P1
length maxpc, file