## Prog8 syntax

## Created by Adiee5
## If issues encountered, make an issue on prog8 github page and ping @Adiee5
## Licensed under GPL v3

syntax prog8 "\.p8$"
comment ";"

# Index thing and Array literals
##color teal "\[[^]]*\]"
color teal "\]"
color teal "\["

# Scope Parents
color lightblack "[[:alpha:]][[:alnum:]_]*\."

# function
color brightyellow "[[:alpha:]][[:alnum:]_]*[[:blank:]]*\("

# Key Words
color lightgreen "\<(true|if_cs|if_eq|if_mi|if_vs|if_z|if_neg)\>"
color lightred "\<(false|if_cc|if_ne|if_pl|if_vc|if_nz|if_pos)\>"
color red "\<if(\>|_)"
color red "\<(sub|(inline[[:space:]]+)?asmsub|extsub|else|void|not|and|x?or|for|in|(down)?to|return|while|repeat|break|continue|step|goto|when|as|const|do|until|unroll)\>"

# Labels
color sky "^[[:alpha:]][[:alnum:]_]*:"

# Data Types
color crimson "\<(u?byte|u?word|str|bool|float)\>"

# Brackets
color yellow "[()]"

# @
color brightmagenta "@[[:blank:]]*[[:alnum:]_]*"

# &
color brick "&"

# Arrows
color lagoon "->"

# Encoding
color cyan "[[:alnum:]_]+:["']"

# char literal
color brightcyan "'([^\\]|\\([^ux]|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{2}))'"

# %asm handling
color normal start="%[Aa][Ss][Mm]" end="}}"
color magenta "%[Aa][Sm][Mm]"

# Directives
color magenta "^[[:space:]]*%[[:alpha:]]+"

# Strings
color brightblue ""([^"]|\\")*""

# Comments
color green ";.*"
color green start="/\*" end="\*/"

# Trailing Whitespace
color ,green "[[:space:]]+$"
