Miscellaneous utility functions. | (ns mini-java.util (:require [clojure.set :as set])) |
Given an ANTLR parser, returns the name of the file it is parsing. | (defn parser-filename [parser] (-> parser .getInputStream .getSourceName)) |
Returns the line and column of the given token in the form [line column]. | (defn token-line-and-column [token] (let [line (.getLine token) column (.getCharPositionInLine token)] [line column])) |
Converts CamelCase to lisp-case. | (defn camel->lisp [s] (-> s (clojure.string/replace #"([a-z])([A-Z])" "$1-$2") clojure.string/lower-case)) |
Given two sets, returns all of the elements which are only contained in a single set. This is done by the set operation: (s1 - s2) ∪ (s2 - s1). | (defn symmetric-set-difference [s1 s2] (set/union (set/difference s1 s2) (set/difference s2 s1))) |