view modules/compiler.tp @ 252:004946743678

Added code for building a method symbol table
author Michael Pavone <pavone@retrodev.com>
date Sat, 10 May 2014 19:11:01 -0700
parents
children
line wrap: on
line source
#{
	main <- :args {
		if: (args length) > 1 {
			file <- os open: (args get: 1) (os O_RDONLY)

			code <- ""
			chunksize <- 1024
			readsize <- chunksize
			while: { readsize = chunksize} do: {
				seg <- os read: file chunksize
				code <- code . seg
				readsize <- seg byte_length
			}
			res <- parser top: code
			if: res {
				methods <- symbols buildMethodTable: (res yield)
				print: methods
			} else: {
				print: "Parse failed!\n"
			}
		} else: {
			print: "Usage compiler FILE\n"
		}
	}
}