Index: autotests/html/brightscript.brs.html
===================================================================
--- /dev/null
+++ autotests/html/brightscript.brs.html
@@ -0,0 +1,106 @@
+
+
+
+brightscript.brs
+
+
+
+#i am macro
+
+library "a"
+
+function myfunc ( foo as Integer , bar as Float = 3.5 ) as Void
+end function
+
+sub mysub ( foo as Integer , bar as Float = 3.5 ) as Void
+end sub
+
+' my comment
+
+Function MyCamelCaseFunction()
+ lvalue = rvalue
+a=5
+a=5!
+a=5#
+a=5%
+a=5&
+
+a$=5
+a!=5
+a#=5
+a%=5
+a&=5
+
+a=a$
+a=a!
+a=a#
+a=a%
+a=a&
+
+foo()
+a.foo()
+a=a.foo()
+
+eval=5
+eval()
+a.eval()
+
+a=eval
+a=eval()
+a=a.eval()
+
+sleep=5
+sleep()
+a.sleep()
+
+a=sleep
+a=sleep()
+a=a.sleep()
+
+if a=b c=d
+if a foo()
+if a then foo()
+
+if a
+end if
+
+if a then
+end if
+
+if a
+else if
+else
+end if
+
+if a
+elseif
+endif
+
+for each a in b
+end for
+
+for a=1 to 10 step 2
+endFor
+
+for each a in b
+next
+
+while a
+end while
+
+while a
+endWhile
+
+a [ "a" , 1, foo() ] = 1
+a.foo()[1]=1
+
+a = {
+ a : 1
+ b : "2"
+ c : function() : end function
+}
+
+b.foo("string",1,{a:b},1.5,[1,2,3])
+a = b.foo("string",1,{a:b},1.5,[1,2,3])
+endFunction
+
Index: autotests/input/brightscript.brs
===================================================================
--- /dev/null
+++ autotests/input/brightscript.brs
@@ -0,0 +1,99 @@
+
+#i am macro
+
+library "a"
+
+function myfunc ( foo as Integer , bar as Float = 3.5 ) as Void
+end function
+
+sub mysub ( foo as Integer , bar as Float = 3.5 ) as Void
+end sub
+
+' my comment
+
+Function MyCamelCaseFunction()
+ lvalue = rvalue
+a=5
+a=5!
+a=5#
+a=5%
+a=5&
+
+a$=5
+a!=5
+a#=5
+a%=5
+a&=5
+
+a=a$
+a=a!
+a=a#
+a=a%
+a=a&
+
+foo()
+a.foo()
+a=a.foo()
+
+eval=5
+eval()
+a.eval()
+
+a=eval
+a=eval()
+a=a.eval()
+
+sleep=5
+sleep()
+a.sleep()
+
+a=sleep
+a=sleep()
+a=a.sleep()
+
+if a=b c=d
+if a foo()
+if a then foo()
+
+if a
+end if
+
+if a then
+end if
+
+if a
+else if
+else
+end if
+
+if a
+elseif
+endif
+
+for each a in b
+end for
+
+for a=1 to 10 step 2
+endFor
+
+for each a in b
+next
+
+while a
+end while
+
+while a
+endWhile
+
+a [ "a" , 1, foo() ] = 1
+a.foo()[1]=1
+
+a = {
+ a : 1
+ b : "2"
+ c : function() : end function
+}
+
+b.foo("string",1,{a:b},1.5,[1,2,3])
+a = b.foo("string",1,{a:b},1.5,[1,2,3])
+endFunction
Index: autotests/input/brightscript.brs.syntax
===================================================================
--- /dev/null
+++ autotests/input/brightscript.brs.syntax
@@ -0,0 +1 @@
+BrightScript
Index: autotests/reference/brightscript.brs.ref
===================================================================
--- /dev/null
+++ autotests/reference/brightscript.brs.ref
@@ -0,0 +1,99 @@
+
+#i am macro
+
+library "a"
+
+function myfunc ( foo as Integer , bar as Float = 3.5 ) as Void
+end function
+
+sub mysub ( foo as Integer , bar as Float = 3.5 ) as Void
+end sub
+
+' my comment
+
+Function MyCamelCaseFunction()
+ lvalue = rvalue
+a=5
+a=5!
+a=5#
+a=5%
+a=5&
+
+a$=5
+a!=5
+a#=5
+a%=5
+a&=5
+
+a=a$
+a=a!
+a=a#
+a=a%
+a=a&
+
+foo()
+a.foo()
+a=a.foo()
+
+eval=5
+eval()
+a.eval()
+
+a=eval
+a=eval()
+a=a.eval()
+
+sleep=5
+sleep()
+a.sleep()
+
+a=sleep
+a=sleep()
+a=a.sleep()
+
+if a=b c=d
+if a foo()
+if a then foo()
+
+if a
+end if
+
+if a then
+end if
+
+if a
+else if
+else
+end if
+
+if a
+elseif
+endif
+
+for each a in b
+end for
+
+for a=1 to 10 step 2
+endFor
+
+for each a in b
+next
+
+while a
+end while
+
+while a
+endWhile
+
+a [ "a" , 1, foo() ] = 1
+a.foo()[1]=1
+
+a = {
+ a : 1
+ b : "2"
+ c : function() : end function
+}
+
+b.foo("string",1,{a:b},1.5,[1,2,3])
+a = b.foo("string",1,{a:b},1.5,[1,2,3])
+endFunction
Index: data/syntax/brightscript.xml
===================================================================
--- /dev/null
+++ data/syntax/brightscript.xml
@@ -0,0 +1,786 @@
+
+
+
+
+
+
+
+
+
+- library
+
+- function
+- endfunction
+- sub
+- endsub
+- as
+
+- end
+- exit
+
+- if
+- endif
+- then
+- else
+- elseif
+
+- while
+- endwhile
+- exitwhile
+
+- for
+- endfor
+- each
+- in
+- to
+- step
+- next
+
+- print
+- return
+
+- dim
+- stop
+- goto
+
+- m
+
+ - top
+ - global
+
+
+
+ - then
+ - end
+ - exit
+
+
+
+ - not
+
+
+
+ - tab
+ - pos
+ - CreateObject
+ - Type
+ - GetGlobalAA
+ - Box
+ - Run
+ - Eval
+ - GetLastRunCompileError
+ - GetLastRunRuntimeError
+ - ObjFun
+
+
+
+ - Sleep
+ - Wait
+ - GetInterface
+ - FindMemberFunction
+ - UpTime
+ - RebootSystem
+ - ListDir
+ - ReadAsciiFile
+ - WriteAsciiFile
+ - CopyFile
+ - MoveFile
+ - MatchFiles
+ - DeleteFile
+ - DeleteDirectory
+ - CreateDirectory
+ - FormatDrive
+ - StrToI
+ - RunGarbageCollector
+ - ParseJson
+ - FormatJson
+ - Tr
+
+
+
+ - UCase
+ - LCase
+ - Asc
+ - Chr
+ - Instr
+ - Left
+ - Len
+ - Mid
+ - Str
+ - StrI
+ - String
+ - StringI
+ - Val
+ - Substitute
+
+
+
+ - Abs
+ - Atn
+ - Cdbl
+ - Cint
+ - Cos
+ - Csng
+ - Exp
+ - Fix
+ - Int
+ - Log
+ - Rnd
+ - Sgn
+ - Sin
+ - Sqr
+ - Tan
+
+
+
+ - rem
+
+
+
+ - invalid
+ - void
+ - dynamic
+ - boolean
+ - integer
+ - longinteger
+ - float
+ - double
+ - string
+ - object
+ - function
+ - interface
+
+
+
+ - true
+ - false
+ - invalid
+ - LINE_NUM
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+