From 940747df2c700f88e6c031526637d555d88d76e9 Mon Sep 17 00:00:00 2001 From: oirfeodent Date: Tue, 29 Aug 2017 06:41:12 -0700 Subject: Fix issue, where in few cases the lexing needs to be done only for functions. --- doc/ScintillaHistory.html | 3 +++ lexers/LexBaan.cxx | 5 ++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html index 4eb8c1e2a..9f391d0e1 100644 --- a/doc/ScintillaHistory.html +++ b/doc/ScintillaHistory.html @@ -537,6 +537,9 @@ related to lexing so doesn't belong in ILexer.h.
  • + The Baan lexer checks that matches to 3rd set of keywords are function calls and leaves as identifiers if not. +
  • +
  • The C++ lexer improved preprocessor conformance.
    Default value of 0 for undefined preprocessor symbols.
    #define A is treated as #define A 1.
    diff --git a/lexers/LexBaan.cxx b/lexers/LexBaan.cxx index 4e071b380..7d98f5ef3 100644 --- a/lexers/LexBaan.cxx +++ b/lexers/LexBaan.cxx @@ -568,7 +568,10 @@ void SCI_METHOD LexerBaan::Lex(Sci_PositionU startPos, Sci_Position length, int sc.ChangeState(SCE_BAAN_WORD2); } else if ((keywords3.kwHasSection && (sc.ch == ':')) ? keywords3.Contains(s1) : keywords3.Contains(s)) { - sc.ChangeState(SCE_BAAN_WORD3); + if (sc.ch == '(') + sc.ChangeState(SCE_BAAN_WORD3); + else + sc.ChangeState(SCE_BAAN_IDENTIFIER); } else if ((keywords4.kwHasSection && (sc.ch == ':')) ? keywords4.Contains(s1) : keywords4.Contains(s)) { sc.ChangeState(SCE_BAAN_WORD4); -- cgit v1.2.3