Error in template instantiation from D-Cookbook example

ShadoLight ettienne.gilbert at gmail.com
Fri Feb 9 21:31:29 UTC 2018


Hi,

Trying to improve my CT-fu, I looked at a DSL example (chapter 9) 
in Adam's D-Cookbook. Although I am sure Adam's original examples 
would have worked, there were some errors in the example code in 
the book.

The example also contains some code to allow you to test the 
functions at RT, which had an error i.e. I had to change this...

	writeln(parse(code));		// to aid with debugging
	writeln(convertToD(parse(code)));	// debugging aid
..to..
	writeln(parse(code)[]);		// to aid with debugging
	writeln(convertToD(parse(code))[]);	// debugging aid

..to match the actual function arguments. So that worked fine.

However I could not get the CT version to work with the current 
version of DMD i.e. this [1]...

[1] https://run.dlang.io/is/dyElXg

...fails with:
onlineapp.d-mixin-36(38): Error: template argument expected 
following !
onlineapp.d(48): Error: template instance onlineapp.runDslCode!"5 
5 + 3 - 2 * 1 + 3 /" error instantiating.

I find the error message a bit lacking as to the real cause - I 
really cannot see where the "template argument expected following 
!" error is. It all looks correct to me.

In addition the RT version is working correctly (after fixing the 
above bug), so that is not helping in identifying the error - 
particularly since it is failing in the only CT specific function 
not used/called at RT. So I am not sure how to debug this.

Can somebody please put me out of my misery here?

Thx!



More information about the Digitalmars-d-learn mailing list