diff --git a/examples/SyntaxHighlighter/include/highlighter.h b/examples/SyntaxHighlighter/include/highlighter.h index 2646c1f..0e3bd39 100644 --- a/examples/SyntaxHighlighter/include/highlighter.h +++ b/examples/SyntaxHighlighter/include/highlighter.h @@ -22,6 +22,7 @@ class Highlighter { void process(); enum TokenType { + COMMENT, TAG, CONTENT, ELEMENT, diff --git a/examples/SyntaxHighlighter/src/attributelexer.lxs b/examples/SyntaxHighlighter/src/attributelexer.lxs index cb83d91..3bdc00f 100644 --- a/examples/SyntaxHighlighter/src/attributelexer.lxs +++ b/examples/SyntaxHighlighter/src/attributelexer.lxs @@ -1,6 +1,6 @@ -ELEMENT = "]*" -ATTRIBUTE_CONTENT_SINGLE_QUOTES = [ ]*'[^<>']*' +ATTRIBUTE = [a-zA-Z0-9-]*[ ]*= +ATTRIBUTE_CONTENT_DOUBLE_QUOTES = "[^<>"]*" +ATTRIBUTE_CONTENT_SINGLE_QUOTES = '[^<>']*' BRACKET = [] diff --git a/examples/SyntaxHighlighter/src/highlighter.cpp b/examples/SyntaxHighlighter/src/highlighter.cpp index 2003e4d..cac778a 100644 --- a/examples/SyntaxHighlighter/src/highlighter.cpp +++ b/examples/SyntaxHighlighter/src/highlighter.cpp @@ -11,6 +11,7 @@ Highlighter::Highlighter(std::istream &file) { colormap[ATTRIBURE_CONTENT] = Undefined; colormap[BRACKET] = Undefined; colormap[nonmatching] = Undefined; + colormap[COMMENT] = Undefined; } Highlighter::~Highlighter() { @@ -30,6 +31,9 @@ void Highlighter::process() { case XMLLexer::TokenType::TAG: newtoken.type = TAG; break; + case XMLLexer::TokenType::COMMENT: + newtoken.type = COMMENT; + break; default: newtoken.type = nonmatching; break; @@ -103,6 +107,7 @@ ConsoleHighlighter::ConsoleHighlighter(std::istream &file): Highlighter(file) { colormap[ATTRIBURE_CONTENT] = Green; colormap[BRACKET] = Blue; colormap[nonmatching] = Black; + colormap[COMMENT] = Black; process(); } diff --git a/examples/SyntaxHighlighter/src/xmllexer.lxs b/examples/SyntaxHighlighter/src/xmllexer.lxs index 8acd753..03a5eab 100644 --- a/examples/SyntaxHighlighter/src/xmllexer.lxs +++ b/examples/SyntaxHighlighter/src/xmllexer.lxs @@ -1,2 +1,3 @@ +COMMENT = TAG = ]*> CONTENT = [^<>]*