uxn

Varvara Ordinator, written in ANSI C(SDL2)
git clone https://git.eamoncaddigan.net/uxn.git
Log | Files | Refs | README | LICENSE

tal.sublime-syntax (2796B)


      1 %YAML 1.2
      2 ---
      3 # See http://www.sublimetext.com/docs/3/syntax.html
      4 name: Uxn Assembly
      5 scopeName: tal.
      6 fileTypes: [tal]
      7 file_extensions:
      8   - tal
      9 scope: source.tal
     10 
     11 contexts:
     12   main:
     13 
     14     # get
     15     - match: '\.(\S+)\sDEI2'
     16       scope:  entity.name.type.typedef
     17       pop: true
     18     - match: '\.(\S+)\sDEI'
     19       scope:  entity.name.type.typedef
     20       pop: true
     21     - match: '\.(\S+)\sLDZ2'
     22       scope:  entity.name.type.typedef
     23       pop: true
     24     - match: '\.(\S+)\sLDZ'
     25       scope:  entity.name.type.typedef
     26       pop: true
     27     - match: '\,(\S+)\sLDR2'
     28       scope:  entity.name.type.typedef
     29       pop: true
     30     - match: '\,(\S+)\sLDR'
     31       scope:  entity.name.type.typedef
     32       pop: true
     33     - match: '\;(\S+)\sLDA2'
     34       scope:  entity.name.type.typedef
     35       pop: true
     36     - match: '\;(\S+)\sLDA'
     37       scope:  entity.name.type.typedef
     38       pop: true
     39     # set
     40     - match: '\.(\S+)\sDEO2'
     41       scope:  constant.numeric
     42       pop: true
     43     - match: '\.(\S+)\sDEO'
     44       scope:  constant.numeric
     45       pop: true
     46     - match: '\.(\S+)\sSTZ2'
     47       scope:  constant.numeric
     48       pop: true
     49     - match: '\.(\S+)\sSTZ'
     50       scope:  constant.numeric
     51       pop: true
     52     - match: '\,(\S+)\sSTR2'
     53       scope:  constant.numeric
     54       pop: true
     55     - match: '\,(\S+)\sSTR'
     56       scope:  constant.numeric
     57       pop: true
     58     - match: '\;(\S+)\sSTA2'
     59       scope:  constant.numeric
     60       pop: true
     61     - match: '\;(\S+)\sSTA'
     62       scope:  constant.numeric
     63       pop: true
     64 
     65     # label
     66     - match: '\@(\S+)\s?'
     67       scope: string.control
     68       pop: true
     69     # sublabel
     70     - match: '\&(\S+)\s?'
     71       scope: string.control
     72       pop: true
     73     # include
     74     - match: 'include'
     75       scope: string.control
     76       pop: true
     77 
     78     # jump
     79     - match: '\|(\S+)\s?'
     80       scope: entity.name.tag.structure.any
     81       pop: true
     82     # pad
     83     - match: '\$(\S+)\s?'
     84       scope: entity.name.tag.structure.any
     85       pop: true
     86 
     87     # Pushing to stack
     88     - match: '\"(\S+)\s?'
     89       scope: constant.numeric
     90       pop: true
     91     
     92     # Addressing
     93     - match: '\.(\S+)\s?'     # zero-page
     94       scope: variable.function.shell
     95       pop: true
     96     - match: '\,(\S+)\s?'     # relative
     97       scope: entity.name.tag.yaml
     98       pop: true
     99     - match: '\;(\S+)\s?'     # absolute
    100       scope: keyword.control
    101       pop: true
    102     - match: '\:(\S+)\s?'     # raw
    103       scope: keyword.control
    104       pop: true
    105 
    106       # Blocks
    107     - match: '\[\s?'
    108       scope: comment
    109       pop: true
    110     - match: '\]\s?'
    111       scope: comment
    112       pop: true
    113 
    114     - match: '\{'
    115       scope: variable.control
    116       push:
    117         - meta_scope: variable.control
    118         - match: '\}'
    119           pop: true
    120 
    121     - match: '\s\(\s'
    122       scope: comment
    123       push:
    124         - meta_scope: comment.line
    125         - match: '\s\)\s'
    126           pop: true