summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Gilding <alex.gilding@talktalk.net>2013-05-06 18:11:51 +0100
committerAlex Gilding <alex.gilding@talktalk.net>2013-05-06 18:11:51 +0100
commitb80b2fde7cbe0ff3964592214311b4eb5dcc0bc5 (patch)
treec2aa87b4b18fd7e01d83cc7a823697e6b6eddf02
parentecac9a75d6350e60c4afe1109df5a257560f10d5 (diff)
downloadpygments-b80b2fde7cbe0ff3964592214311b4eb5dcc0bc5.tar.gz
Ran tests and fixed errors this time...
-rw-r--r--pygments/lexers/_mapping.py2
-rw-r--r--pygments/lexers/compiled.py39
-rw-r--r--tests/examplefiles/test.bb95
3 files changed, 23 insertions, 113 deletions
diff --git a/pygments/lexers/_mapping.py b/pygments/lexers/_mapping.py
index 03bb99c3..9313ae9c 100644
--- a/pygments/lexers/_mapping.py
+++ b/pygments/lexers/_mapping.py
@@ -218,7 +218,7 @@ LEXERS = {
'PostgresConsoleLexer': ('pygments.lexers.sql', 'PostgreSQL console (psql)', ('psql', 'postgresql-console', 'postgres-console'), (), ('text/x-postgresql-psql',)),
'PostgresLexer': ('pygments.lexers.sql', 'PostgreSQL SQL dialect', ('postgresql', 'postgres'), (), ('text/x-postgresql',)),
'PovrayLexer': ('pygments.lexers.other', 'POVRay', ('pov',), ('*.pov', '*.inc'), ('text/x-povray',)),
- 'PowerShellLexer': ('pygments.lexers.shell', 'PowerShell', ('powershell', 'posh', 'ps1', 'psm1'), ('*.ps1','*.psm1'), ('text/x-powershell',)),
+ 'PowerShellLexer': ('pygments.lexers.shell', 'PowerShell', ('powershell', 'posh', 'ps1', 'psm1'), ('*.ps1', '*.psm1'), ('text/x-powershell',)),
'PrologLexer': ('pygments.lexers.compiled', 'Prolog', ('prolog',), ('*.prolog', '*.pro', '*.pl'), ('text/x-prolog',)),
'PropertiesLexer': ('pygments.lexers.text', 'Properties', ('properties',), ('*.properties',), ('text/x-java-properties',)),
'ProtoBufLexer': ('pygments.lexers.other', 'Protocol Buffer', ('protobuf',), ('*.proto',), ()),
diff --git a/pygments/lexers/compiled.py b/pygments/lexers/compiled.py
index 9a89f935..599d23ac 100644
--- a/pygments/lexers/compiled.py
+++ b/pygments/lexers/compiled.py
@@ -2643,13 +2643,12 @@ class BlitzBasicLexer(RegexLexer):
mimetypes = ['text/x-bb']
bb_vopwords = (r'\b(Shl|Shr|Sar|Mod|Or|And|Not|'
- 'Abs|Sgn|Handle|Object|Int|Float|Str'
- 'First|Last|Before|After)\b')
+ r'Abs|Sgn|Handle|Int|Float|Str|'
+ r'First|Last|Before|After)\b')
bb_sktypes = r'@{1,2}|[#$%]'
bb_name = r'[a-z][a-z0-9_]*'
- bb_var = (r'(%s)(?:([ \t]*)(%s)|([ \t]*)([.])([ \t]*)(?:(%s)))') % \
+ bb_var = (r'(%s)(?:([ \t]*)(%s)|([ \t]*)([.])([ \t]*)(?:(%s)))?') % \
(bb_name, bb_sktypes, bb_name)
- bb_func = bb_var + r'?(?:[ \t]*)(\()'
flags = re.MULTILINE | re.IGNORECASE
tokens = {
@@ -2662,29 +2661,33 @@ class BlitzBasicLexer(RegexLexer):
('"', String.Double, 'string'),
# Numbers
(r'[0-9]+\.[0-9]*(?!\.)', Number.Float),
- (r'\.[0-9]*(?!\.)', Number.Float),
+ (r'\.[0-9]+(?!\.)', Number.Float),
(r'[0-9]+', Number.Integer),
(r'\$[0-9a-f]+', Number.Hex),
(r'\%[10]+', Number), # Binary
# Other
- (r'(?:(?:(:)?([ \t]*)(:?%s|([+\-*/~]))|[=<>^]))' %
- (bb_vopwords), Operator),
- (r'[(),.:\[\]\\]', Punctuation),
- (r'(?:\.[\w \t]*)', Name.Label),
+ (r'(?:%s|([+\-*/~=<>^]))' % (bb_vopwords), Operator),
+ (r'[(),:\[\]\\]', Punctuation),
+ (r'\.([ \t]*)(%s)' % bb_name, Name.Label),
# Identifiers
- (r'\b(New)\b([ \t]?)(%s)' % (bb_name),
+ (r'\b(New)\b([ \t]+)(%s)' % (bb_name),
bygroups(Keyword.Reserved, Text, Name.Class)),
- (bb_func, bygroups(Name.Function, Text, Keyword.Type,
- Text, Punctuation, Text, Name.Class,
- Punctuation)),
- (bb_var, bygroups(Name.Variable, Text, Keyword.Type,
+ (r'\b(Gosub|Goto)\b([ \t]+)(%s)' % (bb_name),
+ bygroups(Keyword.Reserved, Text, Name.Label)),
+ (r'\b(Object)\b([ \t]*)([.])([ \t]*)(%s)\b' % (bb_name),
+ bygroups(Operator, Text, Punctuation, Text, Name.Class)),
+ (r'\b%s\b([ \t]*)(\()' % bb_var,
+ bygroups(Name.Function, Text, Keyword.Type,Text, Punctuation,
+ Text, Name.Class, Text, Punctuation)),
+ (r'\b(Function)\b([ \t]+)%s' % bb_var,
+ bygroups(Keyword.Reserved, Text, Name.Function, Text, Keyword.Type,
Text, Punctuation, Text, Name.Class)),
(r'\b(Type)([ \t]+)(%s)' % (bb_name),
bygroups(Keyword.Reserved, Text, Name.Class)),
# Keywords
(r'\b(Pi|True|False|Null)\b', Keyword.Constant),
- (r'\b(Local|Global|Const|Field)\b', Keyword.Declaration),
- (r'\b(End|Return|Exit'
+ (r'\b(Local|Global|Const|Field|Dim)\b', Keyword.Declaration),
+ (r'\b(End|Return|Exit|'
r'Chr|Len|Asc|'
r'New|Delete|Insert|'
r'Include|'
@@ -2697,7 +2700,9 @@ class BlitzBasicLexer(RegexLexer):
r'Select|Case|Default|'
r'Goto|Gosub|Data|Read|Restore)\b', Keyword.Reserved),
# Final resolve (for variable names and such)
- (r'(%s)' % (bb_name), Name.Variable),
+# (r'(%s)' % (bb_name), Name.Variable),
+ (bb_var, bygroups(Name.Variable, Text, Keyword.Type,
+ Text, Punctuation, Text, Name.Class)),
],
'string': [
(r'""', String.Double),
diff --git a/tests/examplefiles/test.bb b/tests/examplefiles/test.bb
index 026ef22a..e69de29b 100644
--- a/tests/examplefiles/test.bb
+++ b/tests/examplefiles/test.bb
@@ -1,95 +0,0 @@
-
-;foobar!
-
-;Include "blurg/blurg.bb"
-
-Const ca = $10000000 ; Hex
-Const cb = %10101010 ; Binary
-Global ga$ = "blargh"
-Local a = 124, b$ = "abcdef"
-
-Function name_123#(zorp$, ll = False, blah#, waffles% = 100)
- Return 235.7804 ; comment
-End Function
-Function TestString$()
-End Function
-
-Function hub(blah$, abc = Pi)
-End Function
-Function Blar%()
- Local aa %, ab # ,ac #, ad# ,ae$,af% ; Intentional mangling
- Local ba#, bb.TBlarf , bc%,bd#,be. TFooBar,ff = True
-End Function
-
-abc()
-
-Function abc()
- Print "abc" ; I cannot find a way to parse these as function calls without messing something up
- Print ; Anyhow, they're generally not used in this way
- Goto Eww_Goto
- .Eww_Goto
-End Function
-
-Type TBlarf
-End Type
-
-Type TFooBar
-End Type
-
-Local myinst.MyClass = New MyClass
-TestMethod(myinst)
-
-Type MyClass
-
- Field m_foo.MyClass
- Field m_bar.MyClass
-
-; abc
-; def
-End Type
-
-Function TestMethod(self.MyClass) ; foobar
- self\m_foo = self
- self\m_bar = Object.MyClass(Handle self\m_foo)
- Yell self\m_foo\m_bar\m_foo\m_bar
-End Function
-
-Function Yell(self.MyClass)
- Print("huzzah!")
-End Function
-
-Function Wakka$(foo$)
- Return foo + "bar"
-End Function
-
-
-Print("blah " + "blah " + "blah.")
-
-Local i : For i = 0 To 10 Step 1
- Print("Index: " + i)
-Next
-Local array$[5]
-array[0] = "foo": array[1] = "bar":array[2] = "11":array[3] = "22":array[4] = "33"
-For i = 0 To 4
- Local value$ = array[i]
- Print("Value: " + value)
-Next
-
-Local foobar = Not (1 Or (2 And (4 Shl 5 Shr 6)) Sar 7) Mod (8+2)
-Local az = 1234567890
-az = az + 1
-az = az - 2
-az = az* 3
-az = az/ 4
-az = az And 5
-az = az Or 6
-az= ~ 7
-az = az Shl 8
-az= az Shr 9
-az = az Sar 10
-az = az Mod 11
-az = ((10-5+2/4*2)>(((8^2)) < 2)) And 12 Or 2
-
-
-;~IDEal Editor Parameters:
-;~C#Blitz3D \ No newline at end of file