|Re: [imp-dev] Case-insensitiv lexer - lpg|
Thanks for the super fast reply.
I tried this but it doesn't seem to work. The editor still allows me to declare like Ex: int a; int A; it considers those different
Anywhere else you think i should point my attention to?
Thanks for your help,
I'm cc'ing Philippe Charles, the main author of LPG, in case he has something to add.
I think you need to use a modified copy of the LexerBasicMapF.gi include file to effect the case-folding you're looking for.
Specifically, to fold everything to lower-case, find the letter-related entries in the tokenKind array that look like:
$sym_type.$prefix$A$suffix$, // 065 0x41
$sym_type.$prefix$B$suffix$, // 066 0x42
$sym_type.$prefix$C$suffix$, // 067 0x43
and replace them with their lower-case equivalents:
$sym_type.$prefix$a$suffix$, // 097 0x61
$sym_type.$prefix$b$suffix$, // 098 0x62
$sym_type.$prefix$c$suffix$, // 099 0x63
I haven't actually tried this myself, but I believe it should work.
On Mar 29, 2011, at 9:26 AM, Ovidiu Diac wrote:
I'm currently working on an ide for a Java-like scripting language. The problem i have is that this script is supposed to be case-insensitive.
I managed to make the keywords case-insensitive by using the KWLexerFoldedCaseMapF.gi include in KWLexer but i don't know what to do about identifiers. - i'm using the lpg parser
Any help is much appreciated.