From 302a83dda6f96d3bfe6da4021c2299aa41775367 Mon Sep 17 00:00:00 2001 From: hellerve Date: Tue, 30 May 2017 16:48:46 -0400 Subject: [PATCH] added makefile and turned on stricter compiler errors --- Makefile | 3 +++ src/compile.ml | 2 +- src/parse.ml | 8 ++++---- src/token.ml | 2 +- 4 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..66292e2 --- /dev/null +++ b/Makefile @@ -0,0 +1,3 @@ +COMPILERFLAGS=-w=@A-4-33-41-42-43-34-44 +all: + corebuild src/compile.native -cflags $(COMPILERFLAGS) diff --git a/src/compile.ml b/src/compile.ml index ec6a15d..251ecc8 100644 --- a/src/compile.ml +++ b/src/compile.ml @@ -6,7 +6,7 @@ let compile file = Parse.parse s g; Charstream.close_stream s; Codegen.close_generator g; - let _ = Sys.command ("nasm -f macho " ^ g.file) in + let _ = Sys.command ("nasm -f macho " ^ g.Codegen.file) in let _ = Sys.command ("gcc -o " ^ o ^ " " ^ o ^ ".o") in () with diff --git a/src/parse.ml b/src/parse.ml index 2724662..f7a8bd4 100644 --- a/src/parse.ml +++ b/src/parse.ml @@ -48,16 +48,16 @@ let rec expression s g d = | Some l -> (match Token.next_token s with | Token.Add -> - let _ = Token.match_token s Add in + let _ = Token.match_token s Token.Add in add s g d l (expression s g (d+1)) | Token.Sub -> - let _ = Token.match_token s Sub in + let _ = Token.match_token s Token.Sub in sub s g d l (expression s g (d+1)) | Token.Mul -> - let _ = Token.match_token s Mul in + let _ = Token.match_token s Token.Mul in mul s g d l (expression s g (d+1)) | Token.Div -> - let _ = Token.match_token s Div in + let _ = Token.match_token s Token.Div in div s g d l (expression s g (d+1)) | _ -> l) | None -> Token.syntax_error s "literal or identifier expected" diff --git a/src/token.ml b/src/token.ml index 7f5f852..d051b3f 100644 --- a/src/token.ml +++ b/src/token.ml @@ -19,7 +19,7 @@ type scanner = { mutable last_token: token option; stm: Charstream.stream } exception Syntax_error of string let syntax_error s msg = - raise (Syntax_error (msg ^" on line " ^ (string_of_int s.stm.line_num))) + raise (Syntax_error (msg ^ " on line " ^ (string_of_int s.stm.Charstream.line_num))) let rec skip_blank_chars stm = let c = Charstream.read_char stm in