Advertisement
Guest User

[YAML] PCR syntax file

a guest
Aug 26th, 2017
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 2.50 KB | None | 0 0
  1. %YAML 1.2
  2. ---
  3. name: FullProf PCR
  4. scope: source.pcr
  5. file_extensions: [pcr]
  6.  
  7. variables:
  8.   number: '-?\d+(\.\d+)?([eE][+-]\d+)?'
  9.   null-number: '-?0+(\.0+)?([eE][+-]\d+)?'
  10.  
  11. contexts:
  12.   main:
  13.     - match: '(?i)^(?=\!\s*Atom)'
  14.       push: atomic-content-block
  15.     - match: '^(?=\!)'
  16.       push: generic-block
  17.  
  18.   end-block:
  19.     - match: '^(?=\!)'
  20.       pop: true
  21.  
  22.   inline-comment:
  23.     - match: '!'
  24.       scope: punctuation.definition.comment.pcr
  25.       push:
  26.       - meta_scope: comment.line.pcr
  27.       - match: '$\n'
  28.         pop: true
  29.  
  30. # Generic lines :
  31. # - comment
  32. # - values
  33. # - codewords (optional)
  34.  
  35.   generic-block:
  36.     - meta_scope: meta.generic-block.pcr
  37.     - match: '^!'
  38.       scope: punctuation.definition.comment.pcr
  39.       push: generic-comment
  40.  
  41.   generic-comment:
  42.     - meta_scope: comment.line.pcr
  43.     - match: '$\n'
  44.       set: generic-line-values
  45.  
  46.   generic-line-values:
  47.     - meta_content_scope: meta.generic-line-values.pcr
  48.     - include: end-block
  49.     - match: '{{number}}'
  50.       scope: constant.other.pcr
  51.     - include: inline-comment
  52.     - match: '$\n'
  53.       set: generic-line-codewords
  54.  
  55.   generic-line-codewords:
  56.     - meta_content_scope: meta.generic-line-codewords.pcr
  57.     - include: end-block
  58.     - match: '{{null-number}}'
  59.       scope: comment.line.pcr
  60.     - match: '{{number}}'
  61.       scope: keyword.control.pcr
  62.     - include: inline-comment
  63.     - match: '$\n'
  64.       pop: true
  65.  
  66. # Atomic content lines :
  67. # - comment
  68. # - values
  69. # - codewords
  70. # - values
  71. # - codewords
  72. # - etc.
  73.  
  74.   atomic-content-block:
  75.     - meta_scope: meta.atomic-content-block.pcr
  76.     - match: '^!'
  77.       scope: punctuation.definition.comment.pcr
  78.       push: atomic-content-comment
  79.  
  80.   atomic-content-comment:
  81.     - meta_scope: comment.line.pcr
  82.     - match: '$\n'
  83.       set: atomic-content-line-values
  84.  
  85.   atomic-content-line-values:
  86.     - meta_content_scope: meta.atomic-content-line-values.pcr
  87.     - include: end-block
  88.     - match: '\b[A-Z][A-Za-z0-9+\-]*\b'
  89.       scope: string.unquoted
  90.     - match: '{{number}}'
  91.       scope: constant.other.pcr
  92.     - include: inline-comment
  93.     - match: '$\n'
  94.       set: atomic-content-line-codewords
  95.  
  96.   atomic-content-line-codewords:
  97.     - meta_content_scope: meta.atomic-content-line-codewords.pcr
  98.     - include: end-block
  99.     - match: '{{null-number}}'
  100.       scope: comment.line.pcr
  101.     - match: '{{number}}'
  102.       scope: keyword.control.pcr
  103.     - include: inline-comment
  104.     - match: '$\n'
  105.       set: atomic-content-line-values
  106.  
  107. ...
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement