   # short-circuiting if any of them succeed. Their order determines precedence:
   # `@literalToken` is the fallback catch-all.
   extractNextToken: ->
-    return if @identifierToken()
-    return if @commentToken()
-    return if @whitespaceToken()
-    return if @lineToken()
-    return if @heredocToken()
-    return if @stringToken()
-    return if @numberToken()
-    return if @regexToken()
-    return if @jsToken()
-    return    @literalToken()
+    @identifierToken() or
+    @commentToken()    or
+    @whitespaceToken() or
+    @lineToken()       or
+    @heredocToken()    or
+    @stringToken()     or
+    @numberToken()     or
+    @regexToken()      or
+    @jsToken()         or
+    @literalToken()
 
   # Tokenizers
   # ----------

        tag = 'CALL_START'
      else if value is '['
        tag = 'INDEX_START'
        @tag 1, 'INDEX_SOAK'  if @tag() is '?'
        @tag 1, 'INDEX_PROTO' if @tag() is '::'
    @token tag, value
    true


    @i += regex.length + flags.length
    true

  # Matches a token in which the passed delimiter pairs must be correctly
  # balanced (ie. strings, JS literals).
  balancedToken: (delimited...) ->
    @balancedString @chunk, delimited
