Commits

leushenko  committed 3afc56a

Ran tests and fixed errors this time...

  • Participants
  • Parent commits b9cc5bc

Comments (0)

Files changed (3)

File pygments/lexers/_mapping.py

     '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',), ()),

File pygments/lexers/compiled.py

     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 = {
             ('"', 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|'
              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),

File tests/examplefiles/test.bb

-
-;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