Enrico Tröger wrote:
On Tue, 7 Oct 2008 12:44:53 +0100, Nick Treleaven nick.treleaven@btinternet.com wrote:
On Sun, 5 Oct 2008 16:02:57 -0700 Jason Oster parasytic@gmail.com wrote:
Unfortunately, the ASM lexer in Scintilla does not support customizable comments. But you can make a modification to add # as a comment char. It's in LexASM.cxx
line 150, scintilla/LexASM.cxx: if (sc.ch == ';'){
change to: if (sc.ch == '#'){
Really the Scintilla ASM lexer could be improved to have a customizable comment char property and also a label style.
Maybe if (sc.ch == '#' || sc.ch == ';'){
would be enough for now? I don't know any ASM very well, but are there many more comment characters used besides route and semicolon? If it would be enough, we sould send a patch to Scintilla. No idea about the label style.
It's a good idea to patch the ASM lexer, since it is not generic enough to support all ASM dialects. (Which I think was the original intent?)
# and ; characters are widely used for ASM comments, but also C/C++ style // and /*...*/ comments are common, too. I have seen cases where @ characters are used as comments, but also cases where @ characters are used for special pseudo-operands! Obviously, not all comment characters should be hard-coded into the lexer, but maybe they should be made customizable.
This would be easy for single comment characters and C++-style // comments by adding a new keywords field. For C-style /*...*/ comments, I think a lexer pref to enable/disable multi-line comments is the way to go.
I'm sure I could hack these features in when I get home today. Oh, and label styles, too. (If I can remember to do it!)
Jason now has some experience in adding properties to Scintilla lexers, don't you? :-)
Yep. ;)
A few other things to think about with ASM syntaxes, which may or may not be within the scope of this discussion:
Number styling could use some work I think, since there are many ways to specify numbers among languages. For example, MOS 6502/65816 uses $... to specify hex numbers, where most others use 0x... or even ...h
BUT, MIPS ASM (which is where this discussion comes from) can use $... to specify registers! Common MIPS register syntaxes include:
$0, r0, zero, $zero ... $1, a0, $a0 ...
etc.
So is $a0 a register (MIPS) or a hex number (MOS 6502/6581)? I think these need to be made more generic, too. ;)
Jay