dynalt (5) [Avatar] Offline
#1
Code Generation in Action - Errata

2006-Jan-25
Garold L. Johnson `

Section 2.5.1 (page 41) C / C++ Cons - The languages are *not* suited to text parsing tasks.

Section 5.4.7 (page 110) name should use the name field (?) based on the comment in the next paragraph
<edit name="<% context[ 'field' ] %>" ... >
s/b
<edit name="<% context[ 'name' ] %>" ... >

Listing 8.2 (page 167) in def initialize
@perl_mapped = [] s/b indented 1 more space

Listing 9.2 (page 177)
if cChar == '' -- missing character in ''?


Listing 9.2 (page 17smilie Set escaped = false after copying the escaped character
if ( escaped )
{
text.append( line.charAt( index );
escaped = false;
}

Problem also in code: Namereader.java (line 12smilie, and Reader.java.template (line 113).

Code File CTokenizer.rb (line 216)

@escaped = ( ch == "\" ) # Found a backslash.

This will fail on "Backslash at end \". The second backslash will set @escaped, and the closing quote will be missed.

Listing 9.2 (page 17smilie
if line.charAt( index ) == '' -- s/b '"'
{
inQuotes = inQuotes ? false : true;
}

Page 179 (next to last line) 'protected' is only partially bold.

Section 10.5.3 (page 200)
Class 'Book' shows 'name' as a member, but the schema in Section 10.5.7 (page 206) doesn't have 'name' for Book
Not all books have ISBNs, but the columns is non-null.

Section 10.5.6 (page 205)
One or more items should be indented under "For each table follows these steps:"

Section 13.4.3 (page 270) "Normalizes ... and replace ..." s/b "Normalizes ... and replaces ..."

Section F.1.4 (page 32smilie
Pattern "\S*.txt$" will determine if the file name ends in ".txt", but it matches a slightly different pattern than the other examples.