Lines Matching full:stream
581 | [< ' (' ' | '\n' | '\r' | '\t'); stream >] -> lex stream
584 | [< ' ('A' .. 'Z' | 'a' .. 'z' as c); stream >] ->
587 lex_ident buffer stream
590 | [< ' ('0' .. '9' as c); stream >] ->
593 lex_number buffer stream
596 | [< ' ('#'); stream >] ->
597 lex_comment stream
600 | [< 'c; stream >] ->
601 [< 'Token.Kwd c; lex stream >]
603 (* end of stream. *)
607 | [< ' ('0' .. '9' | '.' as c); stream >] ->
609 lex_number buffer stream
610 | [< stream=lex >] ->
611 [< 'Token.Number (float_of_string (Buffer.contents buffer)); stream >]
614 | [< ' ('A' .. 'Z' | 'a' .. 'z' | '0' .. '9' as c); stream >] ->
616 lex_ident buffer stream
617 | [< stream=lex >] ->
619 | "def" -> [< 'Token.Def; stream >]
620 | "extern" -> [< 'Token.Extern; stream >]
621 | id -> [< 'Token.Ident id; stream >]
624 | [< ' ('\n'); stream=lex >] -> stream
685 | [< 'Token.Ident id; stream >] ->
687 | [< e=parse_expr; stream >] ->
691 end stream
704 parse_ident id stream
706 | [< >] -> raise (Stream.Error "unknown token when expecting an expression.")
710 and parse_bin_rhs expr_prec lhs stream =
711 match Stream.peek stream with
720 Stream.junk stream;
723 let rhs = parse_primary stream in
727 match Stream.peek stream with
733 then parse_bin_rhs (token_prec + 1) rhs stream
740 parse_bin_rhs expr_prec lhs stream
747 | [< lhs=parse_primary; stream >] -> parse_bin_rhs 0 lhs stream
766 raise (Stream.Error "expected function name in prototype")
897 let rec main_loop stream =
898 match Stream.peek stream with
903 Stream.junk stream;
904 main_loop stream
910 let e = Parser.parse_definition stream in
914 let e = Parser.parse_extern stream in
919 let e = Parser.parse_toplevel stream in
922 with Stream.Error s | Codegen.Error s ->
924 Stream.junk stream;
928 main_loop stream
949 let stream = Lexer.lex (Stream.of_channel stdin) in
952 Toplevel.main_loop stream;