Lines Matching full:stream
78 | "def" -> [< 'Token.Def; stream >]
79 | "extern" -> [< 'Token.Extern; stream >]
80 | "if" -> [< 'Token.If; stream >]
81 | "then" -> [< 'Token.Then; stream >]
82 | "else" -> [< 'Token.Else; stream >]
83 | "for" -> [< 'Token.For; stream >]
84 | "in" -> [< 'Token.In; stream >]
85 | id -> [< 'Token.Ident id; stream >]
429 stream >]
430 | "extern" -> [< 'Token.Extern; stream >]
431 | "if" -> [< 'Token.If; stream >]
432 | "then" -> [< 'Token.Then; stream >]
433 | "else" -> [< 'Token.Else; stream >]
434 | "for" -> [< 'Token.For; stream >]
435 | "in" -> [< 'Token.In; stream >]
436 | id -> [< 'Token.Ident id; stream >]
468 stream >] ->
474 stream >] ->
479 end stream
485 raise (Stream.Error "expected 'in' after for")
486 end stream
488 raise (Stream.Error "expected '=' after for")
489 end stream
761 | [< ' (' ' | '\n' | '\r' | '\t'); stream >] -> lex stream
764 | [< ' ('A' .. 'Z' | 'a' .. 'z' as c); stream >] ->
767 lex_ident buffer stream
770 | [< ' ('0' .. '9' as c); stream >] ->
773 lex_number buffer stream
776 | [< ' ('#'); stream >] ->
777 lex_comment stream
780 | [< 'c; stream >] ->
781 [< 'Token.Kwd c; lex stream >]
783 (* end of stream. *)
787 | [< ' ('0' .. '9' | '.' as c); stream >] ->
789 lex_number buffer stream
790 | [< stream=lex >] ->
791 [< 'Token.Number (float_of_string (Buffer.contents buffer)); stream >]
794 | [< ' ('A' .. 'Z' | 'a' .. 'z' | '0' .. '9' as c); stream >] ->
796 lex_ident buffer stream
797 | [< stream=lex >] ->
799 | "def" -> [< 'Token.Def; stream >]
800 | "extern" -> [< 'Token.Extern; stream >]
801 | "if" -> [< 'Token.If; stream >]
802 | "then" -> [< 'Token.Then; stream >]
803 | "else" -> [< 'Token.Else; stream >]
804 | "for" -> [< 'Token.For; stream >]
805 | "in" -> [< 'Token.In; stream >]
806 | id -> [< 'Token.Ident id; stream >]
809 | [< ' ('\n'); stream=lex >] -> stream
878 | [< 'Token.Ident id; stream >] ->
880 | [< e=parse_expr; stream >] ->
884 end stream
897 parse_ident id stream
910 stream >] ->
916 stream >] ->
921 end stream
927 raise (Stream.Error "expected 'in' after for")
928 end stream
930 raise (Stream.Error "expected '=' after for")
931 end stream
933 | [< >] -> raise (Stream.Error "unknown token when expecting an expression.")
937 and parse_bin_rhs expr_prec lhs stream =
938 match Stream.peek stream with
947 Stream.junk stream;
950 let rhs = parse_primary stream in
954 match Stream.peek stream with
960 then parse_bin_rhs (token_prec + 1) rhs stream
967 parse_bin_rhs expr_prec lhs stream
974 | [< lhs=parse_primary; stream >] -> parse_bin_rhs 0 lhs stream
993 raise (Stream.Error "expected function name in prototype")
1250 let rec main_loop the_fpm the_execution_engine stream =
1251 match Stream.peek stream with
1256 Stream.junk stream;
1257 main_loop the_fpm the_execution_engine stream
1263 let e = Parser.parse_definition stream in
1267 let e = Parser.parse_extern stream in
1272 let e = Parser.parse_toplevel stream in
1284 with Stream.Error s | Codegen.Error s ->
1286 Stream.junk stream;
1290 main_loop the_fpm the_execution_engine stream
1316 let stream = Lexer.lex (Stream.of_channel stdin) in
1341 Toplevel.main_loop the_fpm the_execution_engine stream;