Skip to content

Commit

Permalink
List and Array Comprehensions (#147)
Browse files Browse the repository at this point in the history
  • Loading branch information
Matthiaas authored and mshinwell committed Nov 23, 2021
1 parent 2520a8a commit 4aa74fa
Show file tree
Hide file tree
Showing 32 changed files with 6,150 additions and 3,348 deletions.
49 changes: 49 additions & 0 deletions ocaml/.depend
Original file line number Diff line number Diff line change
Expand Up @@ -307,6 +307,24 @@ parsing/docstrings.cmx : \
parsing/docstrings.cmi : \
parsing/parsetree.cmi \
parsing/location.cmi
parsing/extensions.cmo : \
parsing/parsetree.cmi \
utils/misc.cmi \
parsing/location.cmi \
parsing/asttypes.cmi \
parsing/ast_helper.cmi \
parsing/extensions.cmi
parsing/extensions.cmx : \
parsing/parsetree.cmi \
utils/misc.cmx \
parsing/location.cmx \
parsing/asttypes.cmi \
parsing/ast_helper.cmx \
parsing/extensions.cmi
parsing/extensions.cmi : \
utils/warnings.cmi \
parsing/parsetree.cmi \
parsing/asttypes.cmi
parsing/lexer.cmo : \
utils/warnings.cmi \
parsing/parser.cmi \
Expand Down Expand Up @@ -371,6 +389,7 @@ parsing/parser.cmo : \
parsing/parsetree.cmi \
parsing/longident.cmi \
parsing/location.cmi \
parsing/extensions.cmi \
parsing/docstrings.cmi \
utils/clflags.cmi \
parsing/camlinternalMenhirLib.cmi \
Expand All @@ -382,6 +401,7 @@ parsing/parser.cmx : \
parsing/parsetree.cmi \
parsing/longident.cmx \
parsing/location.cmx \
parsing/extensions.cmx \
parsing/docstrings.cmx \
utils/clflags.cmx \
parsing/camlinternalMenhirLib.cmx \
Expand Down Expand Up @@ -1232,6 +1252,7 @@ typing/typecore.cmo : \
parsing/longident.cmi \
parsing/location.cmi \
typing/ident.cmi \
parsing/extensions.cmi \
typing/env.cmi \
typing/ctype.cmi \
file_formats/cmt_format.cmi \
Expand Down Expand Up @@ -1262,6 +1283,7 @@ typing/typecore.cmx : \
parsing/longident.cmx \
parsing/location.cmx \
typing/ident.cmx \
parsing/extensions.cmx \
typing/env.cmx \
typing/ctype.cmx \
file_formats/cmt_format.cmx \
Expand All @@ -1281,6 +1303,7 @@ typing/typecore.cmi : \
typing/ident.cmi \
typing/env.cmi \
typing/ctype.cmi \
utils/clflags.cmi \
parsing/asttypes.cmi
typing/typedecl.cmo : \
utils/warnings.cmi \
Expand Down Expand Up @@ -1715,6 +1738,7 @@ typing/untypeast.cmo : \
parsing/longident.cmi \
parsing/location.cmi \
typing/ident.cmi \
parsing/extensions.cmi \
typing/env.cmi \
parsing/asttypes.cmi \
parsing/ast_helper.cmi \
Expand All @@ -1726,6 +1750,7 @@ typing/untypeast.cmx : \
parsing/longident.cmx \
parsing/location.cmx \
typing/ident.cmx \
parsing/extensions.cmx \
typing/env.cmx \
parsing/asttypes.cmi \
parsing/ast_helper.cmx \
Expand Down Expand Up @@ -3477,13 +3502,36 @@ lambda/translclass.cmi : \
typing/ident.cmi \
lambda/debuginfo.cmi \
parsing/asttypes.cmi
lambda/translcomprehension.cmo : \
typing/typeopt.cmi \
typing/typedtree.cmi \
typing/primitive.cmi \
lambda/matching.cmi \
lambda/lambda.cmi \
typing/ident.cmi \
parsing/asttypes.cmi \
lambda/translcomprehension.cmi
lambda/translcomprehension.cmx : \
typing/typeopt.cmx \
typing/typedtree.cmx \
typing/primitive.cmx \
lambda/matching.cmx \
lambda/lambda.cmx \
typing/ident.cmx \
parsing/asttypes.cmi \
lambda/translcomprehension.cmi
lambda/translcomprehension.cmi : \
typing/typedtree.cmi \
lambda/lambda.cmi \
lambda/debuginfo.cmi
lambda/translcore.cmo : \
typing/types.cmi \
typing/typeopt.cmi \
typing/typedtree.cmi \
typing/typecore.cmi \
lambda/translprim.cmi \
lambda/translobj.cmi \
lambda/translcomprehension.cmi \
lambda/translattribute.cmi \
typing/printtyp.cmi \
typing/primitive.cmi \
Expand Down Expand Up @@ -3511,6 +3559,7 @@ lambda/translcore.cmx : \
typing/typecore.cmx \
lambda/translprim.cmx \
lambda/translobj.cmx \
lambda/translcomprehension.cmx \
lambda/translattribute.cmx \
typing/printtyp.cmx \
typing/primitive.cmx \
Expand Down
7,694 changes: 4,366 additions & 3,328 deletions ocaml/boot/menhir/parser.ml

Large diffs are not rendered by default.

8 changes: 5 additions & 3 deletions ocaml/compilerlibs/Makefile.compilerlibs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ PARSING=parsing/location.cmo parsing/longident.cmo \
parsing/docstrings.cmo parsing/syntaxerr.cmo \
parsing/ast_helper.cmo \
parsing/pprintast.cmo \
parsing/extensions.cmo \
parsing/camlinternalMenhirLib.cmo parsing/parser.cmo \
parsing/lexer.cmo parsing/parse.cmo parsing/printast.cmo \
parsing/ast_mapper.cmo parsing/ast_iterator.cmo parsing/attr_helper.cmo \
Expand Down Expand Up @@ -73,9 +74,10 @@ TYPING_CMI=\
LAMBDA=lambda/printlambda.cmo \
lambda/switch.cmo lambda/matching.cmo \
lambda/translobj.cmo lambda/translattribute.cmo \
lambda/translprim.cmo lambda/translcore.cmo \
lambda/translclass.cmo lambda/translmod.cmo \
lambda/simplif.cmo lambda/runtimedef.cmo
lambda/translprim.cmo lambda/translcomprehension.cmo \
lambda/translcore.cmo lambda/translclass.cmo\
lambda/translmod.cmo lambda/simplif.cmo\
lambda/runtimedef.cmo
LAMBDA_CMI=

COMP=\
Expand Down
17 changes: 17 additions & 0 deletions ocaml/driver/main_args.ml
Original file line number Diff line number Diff line change
Expand Up @@ -719,6 +719,14 @@ let mk_dump_into_file f =
"-dump-into-file", Arg.Unit f, " dump output like -dlambda into <target>.dump"
;;

let mk_extension f =
"-extension", Arg.String f, "<extension> Enable the extension"
;;

let mk_standard f =
"-standard", Arg.Unit f, " Disable all default extensions"
;;

let mk_dparsetree f =
"-dparsetree", Arg.Unit f, " (undocumented)"
;;
Expand Down Expand Up @@ -1304,6 +1312,7 @@ module type Core_options = sig
val _dtypedtree : unit -> unit
val _drawlambda : unit -> unit
val _dlambda : unit -> unit
val _extension : string -> unit

end

Expand Down Expand Up @@ -1355,6 +1364,7 @@ module type Compiler_options = sig
val _match_context_rows : int -> unit
val _dtimings : unit -> unit
val _dprofile : unit -> unit
val _standard : unit -> unit
val _dump_into_file : unit -> unit

val _args: string -> string array
Expand Down Expand Up @@ -1659,7 +1669,9 @@ struct
mk_dcamlprimc F._dcamlprimc;
mk_dtimings F._dtimings;
mk_dprofile F._dprofile;
mk_standard F._standard;
mk_dump_into_file F._dump_into_file;
mk_extension F._extension;

mk_args F._args;
mk_args0 F._args0;
Expand Down Expand Up @@ -1723,6 +1735,7 @@ struct
mk_drawlambda F._drawlambda;
mk_dlambda F._dlambda;
mk_dinstr F._dinstr;
mk_extension F._extension;

mk_args F._args;
mk_args0 F._args0;
Expand Down Expand Up @@ -1959,8 +1972,10 @@ struct
mk_dstartup F._dstartup;
mk_dtimings F._dtimings;
mk_dprofile F._dprofile;
mk_standard F._standard;
mk_dump_into_file F._dump_into_file;
mk_dump_pass F._dump_pass;
mk_extension F._extension;

mk_args F._args;
mk_args0 F._args0;
Expand Down Expand Up @@ -2294,6 +2309,7 @@ module Default = struct
let _unsafe = set unsafe
let _warn_error s = Warnings.parse_options true s
let _warn_help = Warnings.help_warnings
let _extension s = add_extension s
end

module Native = struct
Expand Down Expand Up @@ -2533,6 +2549,7 @@ module Default = struct
let _config_var = Misc.show_config_variable_and_exit
let _dprofile () = profile_columns := Profile.all_columns
let _dtimings () = profile_columns := [`Time]
let _standard = set_standard
let _dump_into_file = set dump_into_file
let _for_pack s = for_package := (Some s)
let _g = set debug
Expand Down
2 changes: 2 additions & 0 deletions ocaml/driver/main_args.mli
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ module type Core_options = sig
val _dtypedtree : unit -> unit
val _drawlambda : unit -> unit
val _dlambda : unit -> unit
val _extension : string -> unit

end

Expand Down Expand Up @@ -118,6 +119,7 @@ module type Compiler_options = sig
val _match_context_rows : int -> unit
val _dtimings : unit -> unit
val _dprofile : unit -> unit
val _standard : unit -> unit
val _dump_into_file : unit -> unit

val _args: string -> string array
Expand Down
5 changes: 3 additions & 2 deletions ocaml/dune
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
;; PARSING
location longident docstrings syntaxerr ast_helper camlinternalMenhirLib
parser lexer parse printast pprintast ast_mapper ast_iterator attr_helper
builtin_attributes ast_invariants depend
builtin_attributes ast_invariants depend extensions
; manual update: mli only files
asttypes parsetree

Expand All @@ -72,7 +72,8 @@

;; lambda/
debuginfo lambda matching printlambda runtimedef simplif switch
translattribute translclass translcore translmod translobj translprim
translattribute translclass translcomprehension translcore translmod
translobj translprim

;; bytecomp/
debug_event meta opcodes bytesections dll symtable
Expand Down
Loading

0 comments on commit 4aa74fa

Please sign in to comment.