File: //usr/share/source-highlight/scala.lang
# written by Dean Wampler
preproc = "import","package"
include "c_comment.lang"
include "number.lang"
include "c_string.lang"
(keyword,normal,classname) = `(\<(?:class|trait))([[:blank:]]+)([$[:alnum:]_]+)`
keyword = "abstract|case|catch|class|def",
          "do|else|extends|false|final",
          "finally|for|forSome|if|implicit",
          "import|lazy|match|new|null",
          "object|override|package|private|protected",
          "requires|return|sealed|super|this",
          "throw|trait|try|true|type",
          "val|var|while|with|yield"
keyword = "_|:|=>|=|<-|<:|<%|>:|#|@" 
type = "Int|Byte|Boolean|Char|Long|Float|Double|Short|Nil"
include "symbols.lang"
cbracket = "{|}"
vardef FUNCTION = '([[:alpha:]]|_|[[:punct:]])([[:word:]]|[[:punct:]])*(?=[[:blank:]]*\()'
function = $FUNCTION