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