From 99374285afe84f4da489f30505074e689cc7a8c3 Mon Sep 17 00:00:00 2001 From: Golmote Date: Sun, 22 Oct 2017 15:04:13 +0200 Subject: [PATCH] NASM: Regexp optimisation and simplification + don't use captures if not needed --- components/prism-nasm.js | 12 ++++++------ components/prism-nasm.min.js | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/components/prism-nasm.js b/components/prism-nasm.js index b47af8c990..f3e6f11fe6 100644 --- a/components/prism-nasm.js +++ b/components/prism-nasm.js @@ -1,24 +1,24 @@ Prism.languages.nasm = { 'comment': /;.*$/m, - 'string': /("|'|`)(\\?.)*?\1/m, + 'string': /(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/, 'label': { pattern: /(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m, lookbehind: true, alias: 'function' }, 'keyword': [ - /\[?BITS (16|32|64)\]?/m, + /\[?BITS (?:16|32|64)\]?/, { - pattern: /(^\s*)section\s*[a-zA-Z\.]+:?/im, + pattern: /(^\s*)section\s*[a-zA-Z.]+:?/im, lookbehind: true }, - /(?:extern|global)[^;\r\n]*/im, + /(?:extern|global)[^;\r\n]*/i, /(?:CPU|FLOAT|DEFAULT).*$/m ], 'register': { - pattern: /\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(bp|sp|si|di)|[cdefgs]s)\b/i, + pattern: /\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s)\b/i, alias: 'variable' }, - 'number': /(\b|-|(?=\$))(0[hx][\da-f]*\.?[\da-f]+(p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|\d*\.?\d+(\.?e[+-]?\d+)?[dt]?)\b/i, + 'number': /(?:\b|-|(?=\$))(?:0[hx][\da-f]*\.?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|\d*\.?\d+(?:\.?e[+-]?\d+)?[dt]?)\b/i, 'operator': /[\[\]*+\-\/%<>=&|$!]/ }; diff --git a/components/prism-nasm.min.js b/components/prism-nasm.min.js index d117778d8d..f2a06e2d7a 100644 --- a/components/prism-nasm.min.js +++ b/components/prism-nasm.min.js @@ -1 +1 @@ -Prism.languages.nasm={comment:/;.*$/m,string:/("|'|`)(\\?.)*?\1/m,label:{pattern:/(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m,lookbehind:!0,alias:"function"},keyword:[/\[?BITS (16|32|64)\]?/m,{pattern:/(^\s*)section\s*[a-zA-Z\.]+:?/im,lookbehind:!0},/(?:extern|global)[^;\r\n]*/im,/(?:CPU|FLOAT|DEFAULT).*$/m],register:{pattern:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(bp|sp|si|di)|[cdefgs]s)\b/i,alias:"variable"},number:/(\b|-|(?=\$))(0[hx][\da-f]*\.?[\da-f]+(p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|\d*\.?\d+(\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-\/%<>=&|$!]/}; \ No newline at end of file +Prism.languages.nasm={comment:/;.*$/m,string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,label:{pattern:/(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m,lookbehind:!0,alias:"function"},keyword:[/\[?BITS (?:16|32|64)\]?/,{pattern:/(^\s*)section\s*[a-zA-Z.]+:?/im,lookbehind:!0},/(?:extern|global)[^;\r\n]*/i,/(?:CPU|FLOAT|DEFAULT).*$/m],register:{pattern:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s)\b/i,alias:"variable"},number:/(?:\b|-|(?=\$))(?:0[hx][\da-f]*\.?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|\d*\.?\d+(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-\/%<>=&|$!]/}; \ No newline at end of file