         'name': 'keyword.operator.sampling.stan'
       '2':
         'name': 'support.function.distribution.stan'
+
+  'operators':
+    'patterns': [
+      {
+        'match': '<-'
+        'name': 'keyword.operator.assignment.stan'
+      }
+      {
+        'matches': '\\|\\||&&|!'
+        'name': 'keyword.operator.logical.stan'
+        'comment': 'logical operators'
+      }
+      {
+        'matches': '==|!=|<=?|>=?'
+        'name': 'keyword.operator.comparison.stan'
+        'comment': 'logical operators'
+      }
+      {
+        'matches': "+|-|*|/|%|\\\\|\\.[*/]|\\^|'"
+        'name': 'keyword.operator.other.stan'
+        'comment': 'arithmetic and matrix operators'
+      }
+    ]
 
   'real':
     'match': '(?x)

            ]
          }
      ]
  'semicolon':
    'match': ';'
    'name': 'punctuation.separator.stan'

  'assignment':
    'match': '<-'
    'name': 'keyword.operator.assignment.stan'

  'block-declaration':
    'match': '\\b(functions|data|transformed\\s+data|parameters|transformed\\s+parameters|model|generated\\s+quantities)\\b'
    'name': 'entity.name.type.stan'

    'include': '#integer'
  }
  {
    'include': '#illegal-variable'
  }
  {
    'match': ','
    'name': 'meta.delimiter.comma.stan'
  }
  {
    'match': '\\;'
    'name': 'punctuation.terminator.statement.stan'
  }
  {
    'begin': '{|}'
    'name': 'meta.brace.curly.stan'
  }
  {
    'begin': '\\('
    'beginCaptures':
      '0':
        'name': 'meta.brace.round.stan'
    'end': '\\)'
    'endCaptures'
      '0':
        'name': 'meta.brace.round.stan'
    'patterns': [
      'include': '$self'
    ]
  }
  {
    'match': '\\[|\\]'
    'name': 'meta.brace.square.stan'
  }
]
'repository':
