The D Scripting Language

Alexander Malakhov anm at programmer.net
Fri Nov 12 09:49:10 PST 2010


Adam D. Ruppe <destructionator at gmail.com> писал(а) в своём письме Fri, 12  
Nov 2010 23:13:13 +0600:

> Alexander Malakhov wrote:
>>  import std.stdio; // 1. will not compile
>
> I wrote a little rund helper program, and a PHP style D interpreter
> in another thread a couple days ago, that solves this by a simple
> string scan.
>
> http://arsdnet.net/dcode/rund.d
> http://arsdnet.net/dcode/dhp.d
>
> It scans the code byLine. If the line starts with "import", cut it out  
> and move it
> to the top of the final file outputted, above main.
>
>
> This would break if you indented the import, or if it was in a string  
> literal or
> something, but there's a simple solution to that: don't do it!
>
> Example of use:
> $ rund
> import std.math;
>
> writeln(pow(4, 3));
> <EOF>
> 64
>
> ======
>
> $ dhp
> <?d
> import std.math; ?>  Four to the third power is <?= pow(4, 3) ?>!
> <EOF>
>   Four to the third power is 64!
>
> =======
>
> You can see the rule at work in the second example. <?d import std.math;  
> ?>
> wouldn't have been moved, so I just put a newline on it.

Looks nice, especially dhp. But if 2nd problem isn't solved there is no
point in fixing imports

>> void main(string[] args){
>>  	import std.stdio; // 1. will not compile
>> 	void main(string[] args){
>> 		writeln("hello");
>> 	}
>>	main(args); // 2. this should be appended, hence anyway rdmd should  
>> analyze
>> 		         //    if there is main()
>> }


-- 
Alexander


More information about the Digitalmars-d mailing list