     ['string', /^"/.test symbol]
     ['char', /^\\/.test symbol]
     ['regex', /^\/[^ \/]/.test symbol]
-    ['const', /^[A-Z][^\s]*$/.test symbol] # TODO: instead label based on context
+    ['const', /^[A-Z][^\s\.]*$/.test symbol] # TODO: instead label based on context
     ['paren', symbol in ['(', ')']]
     ['bracket', symbol in ['[', ']']]
     ['brace', symbol in ['{', '}']]


isName = (expression) ->
  throw new Error "Nothing passed to isName" unless expression
  (isAtom expression) and expression.symbol is '~' or /[^~"'\/].*/.test expression.symbol

isAtom = (expression) ->
  not (Array.isArray expression)

  else
    (if inSet reservedInJs, name
      "#{name}_"
    else if name is '.'
      "dot_"
    else
      name)
      .replace(/\+/g, 'plus_')
