aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--doc/ScintillaHistory.html5
-rw-r--r--include/SciLexer.h1
-rw-r--r--include/Scintilla.iface4
-rw-r--r--lexers/LexAsm.cxx13
-rw-r--r--src/Catalogue.cxx1
5 files changed, 20 insertions, 4 deletions
diff --git a/doc/ScintillaHistory.html b/doc/ScintillaHistory.html
index 372cccfa8..9ec40881f 100644
--- a/doc/ScintillaHistory.html
+++ b/doc/ScintillaHistory.html
@@ -443,6 +443,7 @@
</tr><tr>
<td>Robert Gieseke</td>
<td>Mike M</td>
+ <td>nkmathew</td>
</tr>
</table>
<p>
@@ -473,6 +474,10 @@
DirectWrite on Windows.
</li>
<li>
+ Additional assembler lexer variant As(SCLEX_AS) for Unix assembly code which uses '#' for comments and
+ ';' to separate statements.
+ </li>
+ <li>
Fix crashes and other bugs in Fortran folder by removing folding of do-label constructs.
</li>
<li>
diff --git a/include/SciLexer.h b/include/SciLexer.h
index 1101bf226..cb4079b8c 100644
--- a/include/SciLexer.h
+++ b/include/SciLexer.h
@@ -125,6 +125,7 @@
#define SCLEX_KVIRC 110
#define SCLEX_RUST 111
#define SCLEX_DMAP 112
+#define SCLEX_AS 113
#define SCLEX_AUTOMATIC 1000
#define SCE_P_DEFAULT 0
#define SCE_P_COMMENTLINE 1
diff --git a/include/Scintilla.iface b/include/Scintilla.iface
index 8eac156fb..7040b63a9 100644
--- a/include/Scintilla.iface
+++ b/include/Scintilla.iface
@@ -2658,6 +2658,7 @@ val SCLEX_STTXT=109
val SCLEX_KVIRC=110
val SCLEX_RUST=111
val SCLEX_DMAP=112
+val SCLEX_AS=113
# When a lexer specifies its language as SCLEX_AUTOMATIC it receives a
# value assigned in sequence from SCLEX_AUTOMATIC+1.
@@ -3247,8 +3248,9 @@ val SCE_SCRIPTOL_IDENTIFIER=12
val SCE_SCRIPTOL_TRIPLE=13
val SCE_SCRIPTOL_CLASSNAME=14
val SCE_SCRIPTOL_PREPROCESSOR=15
-# Lexical states for SCLEX_ASM
+# Lexical states for SCLEX_ASM, SCLEX_AS
lex Asm=SCLEX_ASM SCE_ASM_
+lex As=SCLEX_AS SCE_ASM_
val SCE_ASM_DEFAULT=0
val SCE_ASM_COMMENT=1
val SCE_ASM_NUMBER=2
diff --git a/lexers/LexAsm.cxx b/lexers/LexAsm.cxx
index b327ce5f2..37a4efe35 100644
--- a/lexers/LexAsm.cxx
+++ b/lexers/LexAsm.cxx
@@ -150,8 +150,10 @@ class LexerAsm : public ILexer {
WordList directives4foldend;
OptionsAsm options;
OptionSetAsm osAsm;
+ int commentChar;
public:
- LexerAsm() {
+ LexerAsm(int commentChar_) {
+ commentChar = commentChar_;
}
virtual ~LexerAsm() {
}
@@ -183,7 +185,11 @@ public:
}
static ILexer *LexerFactoryAsm() {
- return new LexerAsm();
+ return new LexerAsm(';');
+ }
+
+ static ILexer *LexerFactoryAs() {
+ return new LexerAsm('#');
}
};
@@ -342,7 +348,7 @@ void SCI_METHOD LexerAsm::Lex(unsigned int startPos, int length, int initStyle,
// Determine if a new state should be entered.
if (sc.state == SCE_ASM_DEFAULT) {
- if (sc.ch == ';'){
+ if (sc.ch == commentChar){
sc.SetState(SCE_ASM_COMMENT);
} else if (IsASCII(sc.ch) && (isdigit(sc.ch) || (sc.ch == '.' && IsASCII(sc.chNext) && isdigit(sc.chNext)))) {
sc.SetState(SCE_ASM_NUMBER);
@@ -457,4 +463,5 @@ void SCI_METHOD LexerAsm::Fold(unsigned int startPos, int length, int initStyle,
}
LexerModule lmAsm(SCLEX_ASM, LexerAsm::LexerFactoryAsm, "asm", asmWordListDesc);
+LexerModule lmAs(SCLEX_AS, LexerAsm::LexerFactoryAs, "as", asmWordListDesc);
diff --git a/src/Catalogue.cxx b/src/Catalogue.cxx
index b7f816d76..41d5d5489 100644
--- a/src/Catalogue.cxx
+++ b/src/Catalogue.cxx
@@ -80,6 +80,7 @@ int Scintilla_LinkLexers() {
LINK_LEXER(lmAbaqus);
LINK_LEXER(lmAda);
LINK_LEXER(lmAPDL);
+ LINK_LEXER(lmAs);
LINK_LEXER(lmAsm);
LINK_LEXER(lmAsn1);
LINK_LEXER(lmASY);