<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.2" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Writing a compiler&#8230;</title>
	<link>http://blog.ngedit.com/2005/05/26/writing-a-compiler/</link>
	<description>A blog on the development of the NGEDIT text editor</description>
	<pubDate>Fri, 30 Jul 2010 00:04:13 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.2</generator>
		<item>
		<title>By: J</title>
		<link>http://blog.ngedit.com/2005/05/26/writing-a-compiler/#comment-6258</link>
		<dc:creator>J</dc:creator>
		<pubDate>Sun, 17 Sep 2006 21:01:55 +0000</pubDate>
		<guid>http://blog.ngedit.com/2005/05/26/writing-a-compiler/#comment-6258</guid>
		<description>Andreas, yeah, it's a long time I haven't touched NGS. Thanks for pointing out  a case where the comma actually changes the meaning. Actually, the parentheses are incredibly overused in C-like languages (expression priority, function call, part of specific constructs like if, while, etc...).

The semicolon is less tricky, as it's only used at statement level (although with some inconsistencies - the do-while form for example), so I think it's actually the case that it can be ellided more often.

But in any case, this was more of a curiosity than anything else. Actually, I wrote a basic vi/vim emulator in the scripting language, which I then ported to C++, and adding the semicolons back was a PITA :)</description>
		<content:encoded><![CDATA[<p>Andreas, yeah, it&#8217;s a long time I haven&#8217;t touched NGS. Thanks for pointing out  a case where the comma actually changes the meaning. Actually, the parentheses are incredibly overused in C-like languages (expression priority, function call, part of specific constructs like if, while, etc&#8230;).</p>
<p>The semicolon is less tricky, as it&#8217;s only used at statement level (although with some inconsistencies - the do-while form for example), so I think it&#8217;s actually the case that it can be ellided more often.</p>
<p>But in any case, this was more of a curiosity than anything else. Actually, I wrote a basic vi/vim emulator in the scripting language, which I then ported to C++, and adding the semicolons back was a PITA <img src='http://blog.ngedit.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andreas</title>
		<link>http://blog.ngedit.com/2005/05/26/writing-a-compiler/#comment-6206</link>
		<dc:creator>Andreas</dc:creator>
		<pubDate>Sun, 17 Sep 2006 06:39:46 +0000</pubDate>
		<guid>http://blog.ngedit.com/2005/05/26/writing-a-compiler/#comment-6206</guid>
		<description>A bit late...was just stumbling on this. Leaving out operators is  a bit dangerous; using a parser generator will point out misconceptions very quickly. Try removing the comma in 'f (a, (b + c) * 2)'... But then there are languages that do not have commas or parentheses in function invocations, but those are designed for that in the expression department.

For the semicolon: Up to now I've only seen languages that take an implicit semicolon at the end of a line.

And you should need returns in the statements-for-expression. Actually you shouldn't need returns at all at the end of a function. See ruby.</description>
		<content:encoded><![CDATA[<p>A bit late&#8230;was just stumbling on this. Leaving out operators is  a bit dangerous; using a parser generator will point out misconceptions very quickly. Try removing the comma in &#8216;f (a, (b + c) * 2)&#8217;&#8230; But then there are languages that do not have commas or parentheses in function invocations, but those are designed for that in the expression department.</p>
<p>For the semicolon: Up to now I&#8217;ve only seen languages that take an implicit semicolon at the end of a line.</p>
<p>And you should need returns in the statements-for-expression. Actually you shouldn&#8217;t need returns at all at the end of a function. See ruby.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
