diff options
author | Alex Gilding <alex.gilding@talktalk.net> | 2013-05-06 18:11:51 +0100 |
---|---|---|
committer | Alex Gilding <alex.gilding@talktalk.net> | 2013-05-06 18:11:51 +0100 |
commit | b80b2fde7cbe0ff3964592214311b4eb5dcc0bc5 (patch) | |
tree | c2aa87b4b18fd7e01d83cc7a823697e6b6eddf02 | |
parent | ecac9a75d6350e60c4afe1109df5a257560f10d5 (diff) | |
download | pygments-b80b2fde7cbe0ff3964592214311b4eb5dcc0bc5.tar.gz |
Ran tests and fixed errors this time...
-rw-r--r-- | pygments/lexers/_mapping.py | 2 | ||||
-rw-r--r-- | pygments/lexers/compiled.py | 39 | ||||
-rw-r--r-- | tests/examplefiles/test.bb | 95 |
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 |