D front end implementation
Timon Gehr via Digitalmars-d
digitalmars-d at puremagic.com
Wed Nov 16 15:12:35 PST 2016
On 16.11.2016 19:17, Jacob Carlborg wrote:
> On 2016-11-16 01:11, Timon Gehr wrote:
>
>> Yup. There are many features missing that are quite easy to implement
>> but require work, and a few that are somewhat messy to specify (e.g.
>> 'protected'). An incomplete list:
>>
>> * UDA's
>> * Built-in members (init, stringof, min, max, ...)
>> * various forms of import statements
>> - static, selective, renaming, ...
>> * Initialization of union fields
>> * anonymous structs & unions
>> - Analysis & Lowering
>> * additional import paths & implicit object.d
>> * implicit inheritance from Object
>> * version declarations
>> * Associative arrays/Associative array literals
>> * module declarations
>> * (implicit) super constructor calls
>> - default constructor call insertion
>> - flow analysis
>> * Destructor and postblit calls
>> - use flow analysis to optimize moves
>> * with statements
>> * associative arrays
>> * foreach statements
>> - automatic decoding for string types
>> - foreach over associative arrays
>> - foreach over delegates
>> - foreach over AliasSeq
>> * pattern matching in old-style template constraints
>> * explicit casts from/to class references
>> - eg. to/from void* and to bool
>> * try-catch-finally statements
>> * scope guards
>> * initialization crossing check
>> * multi-argument struct constructors.
>> * struct postblit & destructors
>> * finish operator overloading support
>> * opDispatch
>> * member alias declarations aliasing members
>> - correctly provide a this pointer
>> * visibility
>> - package, protected
>> * alias this
>
> Is it "only" semantic analysis that is missing for these features or
> lexing and/or parsing as well?
>
Mostly semantic analysis, but parsing is very easy anyway. I think UDAs
are the only listed feature still missing in the parser, but that's just
because they were introduced after I had already written the parser.
More information about the Digitalmars-d
mailing list