4 ms·
Actually, I think its syntax isn't just simple, it's simplistic. It's simple to implement, but it presents some rather unexpected behaviour to the user. To wi
by jgw 14y ago
Actually, I think its syntax isn't just simple, it's simplistic. It's simple to implement, but it presents some rather unexpected behaviour to the user. To wit:
proc hello {} {
# I'd like to put an unmatched { in my comment
puts "Hello!"
}
This doesn't compile because of the unmatched {.
But this does, by adding another unmatched } - in the following string:
proc hello {} {
# I'd like to put an unmatched { in my comment
puts "Hello!}"
}
In other news, Richard P. Gabriel can stop arguing with himself about whether worse is better. In this case, worse is pretty silly!
- zorlem 14y agoThis is one of the reasons I'm only a little sorry that Lua has taken over. Not without its shortcomings, Lua is a big advancement in this regard! :)
- sigzero 14y agoWhy didn't you just escape the brace with "\"?
- jgw 14y agoThat's not the point. The question is not "How can I put an unmatched curly bracket in my comment?" The question is "Why are the semantics of the language - including, but not limited to brace matching - so peculiar and unexpected?" Look at my second code example! The matching brace is in a string, in another command, on the next tine! And it works! And removing either one breaks the code!
- darkarmani 14y agoWhy would you escape something in a comment??
- engtech 14y agoI will be borrowing this: "its syntax isn't just simple, it's simplistic" I've lost hours to the syntax errors in comments before. Coupled with TCL's bad error messages it's maddening. #syntax errors in comments are dumb proc test {a b} { } # test % source tmp.tcl wrong # args: should be "proc name args body" How long does it take to find that one in a 1000 line file? It doesn't even give a file name or line number.
- tpoindex 14y agoYou might try Nagelfar, an extensible syntax checker: http://nagelfar.berlios.de/ http://nagelfar.berlios.de/ Nagelfar can easily find these types of errors, plus you should be able to define syntax for your own commands (as in your previous comment.) tclsh nagelfar.tcl engtech.tcl Checking file engtech.tcl Line 1: E Wrong number of arguments (5) to "proc" Argument 4 at line 2 Argument 5 at line 2 Comments are warty in Tcl, you would be better off to understand Tcl's syntax conventions, rather than assuming comments work like other languages. See item #10 at: http://wiki.tcl.tk/10259 http://wiki.tcl.tk/10259