summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Corbett <corbett.dav@husky.neu.edu>2016-03-01 20:09:08 -0500
committerDavid Corbett <corbett.dav@husky.neu.edu>2016-03-01 20:09:08 -0500
commite01c1606567c139e72ed98ab9bf39e1c9f6f857f (patch)
tree8ab130833ea70bfb192cb5d355441d4e6d7127e1
parentd4f588e4840cea87a7458e94d1e722ed753d51a4 (diff)
downloadpygments-e01c1606567c139e72ed98ab9bf39e1c9f6f857f.tar.gz
Fix Batch strings
-rw-r--r--pygments/lexers/shell.py8
-rw-r--r--tests/examplefiles/example.bat4
2 files changed, 8 insertions, 4 deletions
diff --git a/pygments/lexers/shell.py b/pygments/lexers/shell.py
index 6a3b3815..ad2e2d7a 100644
--- a/pygments/lexers/shell.py
+++ b/pygments/lexers/shell.py
@@ -214,16 +214,16 @@ class BatchLexer(RegexLexer):
(_nl, _punct, _ws, _nl))
_number = r'(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)' % _token_terminator
_opword = r'(?:equ|geq|gtr|leq|lss|neq)'
- _string = r'(?:"[^%s"]*"?)' % _nl
+ _string = r'(?:"[^%s"]*(?:"|(?=[%s])))' % (_nl, _nl)
_variable = (r'(?:(?:%%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|'
r'[^%%:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%%%s^]|'
r'\^[^%%%s])[^=%s]*=(?:[^%%%s^]|\^[^%%%s])*)?)?%%))|'
r'(?:\^?![^!:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:'
r'[^!%s^]|\^[^!%s])[^=%s]*=(?:[^!%s^]|\^[^!%s])*)?)?\^?!))' %
(_nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl))
- _core_token = r'(?:(?:(?:\^[%s]?)?[^%s%s%s])+)' % (_nl, _nl, _punct, _ws)
- _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^%s%s%s)])+)' % (_nl, _nl,
- _punct, _ws)
+ _core_token = r'(?:(?:(?:\^[%s]?)?[^"%s%s%s])+)' % (_nl, _nl, _punct, _ws)
+ _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^"%s%s%s)])+)' % (_nl, _nl,
+ _punct, _ws)
_token = r'(?:[%s]+|%s)' % (_punct, _core_token)
_token_compound = r'(?:[%s]+|%s)' % (_punct, _core_token_compound)
_stoken = (r'(?:[%s]+|(?:%s|%s|%s)+)' %
diff --git a/tests/examplefiles/example.bat b/tests/examplefiles/example.bat
index bf27673c..596f65de 100644
--- a/tests/examplefiles/example.bat
+++ b/tests/examplefiles/example.bat
@@ -99,6 +99,10 @@ goto fail
rem "comment comment"^
goto fail
rem comment comment^
+if "1==1" equ "1==1" goto comments4
+goto fail
+:comments4
+rem comment"comment^
set /a _passed+=1
GOTO :EOF
goto :fail