package org.jerlang; import java.util.HashMap; import java.util.Map; import org.jerlang.type.Atom; public class AtomRegistry { /** * Register common atoms. * Based on /erts/emulator/beam/atom.names */ static { instance = new AtomRegistry(); register(Atom.of("false")); register(Atom.of("Underscore", "_")); register(Atom.of("Noname", "nonode@nohost")); register(Atom.of("EOT", "$end_of_table")); register(Atom.of("Cookie", "")); register(Atom.of("fun")); register(Atom.of("infinity")); register(Atom.of("timeout")); register(Atom.of("normal")); register(Atom.of("call")); register(Atom.of("return")); register(Atom.of("throw")); register(Atom.of("error")); register(Atom.of("exit")); register(Atom.of("undefined")); register(Atom.of("nocatch")); register(Atom.of("undefined_function")); register(Atom.of("undefined_lambda")); register(Atom.of("DOWN")); register(Atom.of("UP")); register(Atom.of("EXIT")); register(Atom.of("aborted")); register(Atom.of("abs_path")); register(Atom.of("absoluteURI")); register(Atom.of("ac")); register(Atom.of("accessor")); register(Atom.of("active")); register(Atom.of("all")); register(Atom.of("all_but_first")); register(Atom.of("all_names")); register(Atom.of("alloc_info")); register(Atom.of("alloc_sizes")); register(Atom.of("allocated")); register(Atom.of("allocated_areas")); register(Atom.of("allocator")); register(Atom.of("allocator_sizes")); register(Atom.of("alloc_util_allocators")); register(Atom.of("allow_gc")); register(Atom.of("allow_passive_connect")); register(Atom.of("already_loaded")); register(Atom.of("amd64")); register(Atom.of("anchored")); register(Atom.of("and")); register(Atom.of("andalso")); register(Atom.of("andthen")); register(Atom.of("any")); register(Atom.of("anycrlf")); register(Atom.of("apply")); register(Atom.of("args")); register(Atom.of("arg0")); register(Atom.of("arity")); register(Atom.of("asn1")); register(Atom.of("async")); register(Atom.of("asynchronous")); register(Atom.of("atom")); register(Atom.of("atom_used")); register(Atom.of("attributes")); register(Atom.of("await_port_send_result")); register(Atom.of("await_proc_exit")); register(Atom.of("await_result")); register(Atom.of("await_sched_wall_time_modifications")); register(Atom.of("awaiting_load")); register(Atom.of("awaiting_unload")); register(Atom.of("backtrace")); register(Atom.of("backtrace_depth")); register(Atom.of("badarg")); register(Atom.of("badarith")); register(Atom.of("badarity")); register(Atom.of("badfile")); register(Atom.of("badfun")); register(Atom.of("badkey")); register(Atom.of("badmap")); register(Atom.of("badmatch")); register(Atom.of("badsig")); register(Atom.of("bag")); register(Atom.of("band")); register(Atom.of("big")); register(Atom.of("bif_return_trap")); register(Atom.of("bif_timer_server")); register(Atom.of("binary")); register(Atom.of("binary_bin_to_list_trap")); register(Atom.of("binary_copy_trap")); register(Atom.of("binary_longest_prefix_trap")); register(Atom.of("binary_longest_suffix_trap")); register(Atom.of("binary_match_trap")); register(Atom.of("binary_matches_trap")); register(Atom.of("binary_to_list_continue")); register(Atom.of("binary_to_term_trap")); register(Atom.of("block")); register(Atom.of("blocked")); register(Atom.of("bm")); register(Atom.of("bnot")); register(Atom.of("bor")); register(Atom.of("bxor")); register(Atom.of("break_ignored")); register(Atom.of("breakpoint")); register(Atom.of("bsl")); register(Atom.of("bsr")); register(Atom.of("bsr_anycrlf")); register(Atom.of("bsr_unicode")); register(Atom.of("build_type")); register(Atom.of("busy_dist_port")); register(Atom.of("busy_port")); register(Atom.of("call")); register(Atom.of("call_count")); register(Atom.of("call_time")); register(Atom.of("caller")); register(Atom.of("capture")); register(Atom.of("case_clause")); register(Atom.of("caseless")); register(Atom.of("catchlevel")); register(Atom.of("cd")); register(Atom.of("cdr")); register(Atom.of("cflags")); register(Atom.of("CHANGE")); register(Atom.of("characters_to_binary_int")); register(Atom.of("characters_to_list_int")); register(Atom.of("clear")); register(Atom.of("clock_service")); register(Atom.of("close")); register(Atom.of("closed")); register(Atom.of("code")); register(Atom.of("command")); register(Atom.of("compact")); register(Atom.of("compat_rel")); register(Atom.of("compile")); register(Atom.of("compressed")); register(Atom.of("config_h")); register(Atom.of("convert_time_unit")); register(Atom.of("connect")); register(Atom.of("connected")); register(Atom.of("connection_closed")); register(Atom.of("cons")); register(Atom.of("const")); register(Atom.of("context_switches")); register(Atom.of("control")); register(Atom.of("copy")); register(Atom.of("cpu")); register(Atom.of("cpu_timestamp")); register(Atom.of("cr")); register(Atom.of("crlf")); register(Atom.of("creation")); register(Atom.of("current_function")); register(Atom.of("current_location")); register(Atom.of("current_stacktrace")); register(Atom.of("data")); register(Atom.of("debug_flags")); register(Atom.of("decimals")); register(Atom.of("delay_trap")); register(Atom.of("dexit")); register(Atom.of("depth")); register(Atom.of("dgroup_leader")); register(Atom.of("dictionary")); register(Atom.of("dirty_cpu_schedulers_online")); register(Atom.of("disable_trace")); register(Atom.of("disabled")); register(Atom.of("display_items")); register(Atom.of("dist")); register(Atom.of("dist_cmd")); register(Atom.of("Div='/'")); register(Atom.of("div")); register(Atom.of("dlink")); register(Atom.of("dmonitor_node")); register(Atom.of("dmonitor_p")); register(Atom.of("DollarDollar", "$$")); register(Atom.of("DollarUnderscore", "$_")); register(Atom.of("dollar_endonly")); register(Atom.of("dotall")); register(Atom.of("driver")); register(Atom.of("driver_options")); register(Atom.of("dsend")); register(Atom.of("dsend_continue_trap")); register(Atom.of("dunlink")); register(Atom.of("duplicate_bag")); register(Atom.of("dupnames")); register(Atom.of("elib_malloc")); register(Atom.of("emulator")); register(Atom.of("enable_trace")); register(Atom.of("enabled")); register(Atom.of("endian")); register(Atom.of("env")); register(Atom.of("eof")); register(Atom.of("eol")); register(Atom.of("exception_from")); register(Atom.of("exception_trace")); register(Atom.of("extended")); register(Atom.of("Eq='=:='")); register(Atom.of("Eqeq='=='")); register(Atom.of("erlang")); register(Atom.of("ERROR='ERROR'")); register(Atom.of("error_handler")); register(Atom.of("error_logger")); register(Atom.of("erts_internal")); register(Atom.of("ets")); register(Atom.of("ETS_TRANSFER", "ETS-TRANSFER")); register(Atom.of("event")); register(Atom.of("exact_reductions")); register(Atom.of("exclusive")); register(Atom.of("exit_status")); register(Atom.of("existing")); register(Atom.of("exiting")); register(Atom.of("exports")); register(Atom.of("external")); register(Atom.of("false")); register(Atom.of("fcgi")); register(Atom.of("fd")); register(Atom.of("first")); register(Atom.of("firstline")); register(Atom.of("flags")); register(Atom.of("flush")); register(Atom.of("flush_monitor_messages")); register(Atom.of("force")); register(Atom.of("format_cpu_topology")); register(Atom.of("free")); register(Atom.of("fullsweep_after")); register(Atom.of("fullsweep_if_old_binaries")); register(Atom.of("fun")); register(Atom.of("function")); register(Atom.of("functions")); register(Atom.of("function_clause")); register(Atom.of("garbage_collecting")); register(Atom.of("garbage_collection")); register(Atom.of("gc_end")); register(Atom.of("gc_start")); register(Atom.of("Ge='>='")); register(Atom.of("generational")); register(Atom.of("get_data")); register(Atom.of("get_seq_token")); register(Atom.of("get_tcw")); register(Atom.of("getenv")); register(Atom.of("gather_gc_info_result")); register(Atom.of("gather_io_bytes")); register(Atom.of("gather_sched_wall_time_result")); register(Atom.of("getting_linked")); register(Atom.of("getting_unlinked")); register(Atom.of("global")); register(Atom.of("Gt='>'")); register(Atom.of("grun")); register(Atom.of("group_leader")); register(Atom.of("have_dt_utag")); register(Atom.of("heap_block_size")); register(Atom.of("heap_size")); register(Atom.of("heap_sizes")); register(Atom.of("heap_type")); register(Atom.of("heart_port")); register(Atom.of("heir")); register(Atom.of("hidden")); register(Atom.of("hide")); register(Atom.of("high")); register(Atom.of("hipe_architecture")); register(Atom.of("http")); register(Atom.of("httph")); register(Atom.of("https")); register(Atom.of("http_response")); register(Atom.of("http_request")); register(Atom.of("http_header")); register(Atom.of("http_eoh")); register(Atom.of("http_error")); register(Atom.of("http_bin")); register(Atom.of("httph_bin")); register(Atom.of("id")); register(Atom.of("if_clause")); register(Atom.of("ignore")); register(Atom.of("in")); register(Atom.of("in_exiting")); register(Atom.of("inactive")); register(Atom.of("incomplete")); register(Atom.of("inconsistent")); register(Atom.of("index")); register(Atom.of("infinity")); register(Atom.of("info")); register(Atom.of("info_msg")); register(Atom.of("initial_call")); register(Atom.of("input")); register(Atom.of("internal")); register(Atom.of("internal_error")); register(Atom.of("internal_status")); register(Atom.of("instruction_counts")); register(Atom.of("invalid")); register(Atom.of("is_constant")); register(Atom.of("is_seq_trace")); register(Atom.of("io")); register(Atom.of("keypos")); register(Atom.of("kill")); register(Atom.of("killed")); register(Atom.of("kill_ports")); register(Atom.of("known")); register(Atom.of("label")); register(Atom.of("large_heap")); register(Atom.of("last_calls")); register(Atom.of("latin1")); register(Atom.of("ldflags")); register(Atom.of("Le='=<'")); register(Atom.of("lf")); register(Atom.of("line")); register(Atom.of("line_length")); register(Atom.of("linked_in_driver")); register(Atom.of("links")); register(Atom.of("list")); register(Atom.of("list_to_binary_continue")); register(Atom.of("little")); register(Atom.of("loaded")); register(Atom.of("load_cancelled")); register(Atom.of("load_failure")); register(Atom.of("local")); register(Atom.of("long_gc")); register(Atom.of("long_schedule")); register(Atom.of("low")); register(Atom.of("Lt='<'")); register(Atom.of("machine")); register(Atom.of("match")); register(Atom.of("match_limit")); register(Atom.of("match_limit_recursion")); register(Atom.of("match_spec")); register(Atom.of("max")); register(Atom.of("maximum")); register(Atom.of("max_tables max_processes")); register(Atom.of("mbuf_size")); register(Atom.of("md5")); register(Atom.of("memory")); register(Atom.of("memory_internal")); register(Atom.of("memory_types")); register(Atom.of("message")); register(Atom.of("message_binary")); register(Atom.of("message_queue_len")); register(Atom.of("messages")); register(Atom.of("merge_trap")); register(Atom.of("meta")); register(Atom.of("meta_match_spec")); register(Atom.of("micro_seconds")); register(Atom.of("milli_seconds")); register(Atom.of("min_heap_size")); register(Atom.of("min_bin_vheap_size")); register(Atom.of("minor_version")); register(Atom.of("Minus='-'")); register(Atom.of("module")); register(Atom.of("module_info")); register(Atom.of("monitored_by")); register(Atom.of("monitor")); register(Atom.of("monitor_nodes")); register(Atom.of("monitors")); register(Atom.of("monotonic")); register(Atom.of("more")); register(Atom.of("multi_scheduling")); register(Atom.of("multiline")); register(Atom.of("nano_seconds")); register(Atom.of("name")); register(Atom.of("named_table")); register(Atom.of("namelist")); register(Atom.of("native")); register(Atom.of("native_addresses")); register(Atom.of("Neq='=/='")); register(Atom.of("Neqeq='/='")); register(Atom.of("net_kernel")); register(Atom.of("net_kernel_terminated")); register(Atom.of("never_utf")); register(Atom.of("new")); register(Atom.of("new_index")); register(Atom.of("new_uniq")); register(Atom.of("newline")); register(Atom.of("next")); register(Atom.of("no")); register(Atom.of("nomatch")); register(Atom.of("none")); register(Atom.of("no_auto_capture")); register(Atom.of("noconnect")); register(Atom.of("noconnection")); register(Atom.of("nocookie")); register(Atom.of("node")); register(Atom.of("node_type")); register(Atom.of("nodedown")); register(Atom.of("nodedown_reason")); register(Atom.of("nodeup")); register(Atom.of("noeol")); register(Atom.of("nofile")); register(Atom.of("noproc")); register(Atom.of("normal")); register(Atom.of("nosuspend")); register(Atom.of("no_float")); register(Atom.of("no_integer")); register(Atom.of("no_network")); register(Atom.of("no_start_optimize")); register(Atom.of("not")); register(Atom.of("not_a_list")); register(Atom.of("not_loaded")); register(Atom.of("not_loaded_by_this_process")); register(Atom.of("not_pending")); register(Atom.of("not_purged")); register(Atom.of("notalive")); register(Atom.of("notbol")); register(Atom.of("noteol")); register(Atom.of("notempty")); register(Atom.of("notempty_atstart")); register(Atom.of("notify")); register(Atom.of("notsup")); register(Atom.of("nouse_stdio")); register(Atom.of("objects")); register(Atom.of("offset")); register(Atom.of("ok")); register(Atom.of("old_heap_block_size")); register(Atom.of("old_heap_size")); register(Atom.of("on_load")); register(Atom.of("open")); register(Atom.of("open_error")); register(Atom.of("opt")); register(Atom.of("or")); register(Atom.of("ordered_set")); register(Atom.of("orelse")); register(Atom.of("os_pid")); register(Atom.of("os_type")); register(Atom.of("os_version")); register(Atom.of("ose_bg_proc")); register(Atom.of("ose_int_proc")); register(Atom.of("ose_phantom")); register(Atom.of("ose_pri_proc")); register(Atom.of("ose_process_prio")); register(Atom.of("ose_process_type")); register(Atom.of("ose_ti_proc")); register(Atom.of("out")); register(Atom.of("out_exited")); register(Atom.of("out_exiting")); register(Atom.of("output")); register(Atom.of("overlapped_io")); register(Atom.of("owner")); register(Atom.of("packet")); register(Atom.of("packet_size")); register(Atom.of("parallelism")); register(Atom.of("Plus='+'")); register(Atom.of("pause")); register(Atom.of("pending")); register(Atom.of("pending_driver")); register(Atom.of("pending_process")); register(Atom.of("pending_reload")); register(Atom.of("permanent")); register(Atom.of("pid")); register(Atom.of("port")); register(Atom.of("ports")); register(Atom.of("port_count")); register(Atom.of("port_limit")); register(Atom.of("port_op")); register(Atom.of("positive")); register(Atom.of("print")); register(Atom.of("priority")); register(Atom.of("private")); register(Atom.of("process")); register(Atom.of("processes")); register(Atom.of("processes_used")); register(Atom.of("process_count")); register(Atom.of("process_display")); register(Atom.of("process_limit")); register(Atom.of("process_dump")); register(Atom.of("procs")); register(Atom.of("proc_sig")); register(Atom.of("profile")); register(Atom.of("protected")); register(Atom.of("protection")); register(Atom.of("ptab_list_continue")); register(Atom.of("public")); register(Atom.of("purify")); register(Atom.of("quantify")); register(Atom.of("queue_size")); register(Atom.of("raw")); register(Atom.of("re")); register(Atom.of("re_pattern")); register(Atom.of("re_run_trap")); register(Atom.of("read_concurrency")); register(Atom.of("ready_input")); register(Atom.of("ready_output")); register(Atom.of("reason")); register(Atom.of("receive")); register(Atom.of("recent_size")); register(Atom.of("reductions")); register(Atom.of("refc")); register(Atom.of("register")); register(Atom.of("registered_name")); register(Atom.of("reload")); register(Atom.of("rem")); register(Atom.of("report_errors")); register(Atom.of("reset")); register(Atom.of("restart")); register(Atom.of("return_from")); register(Atom.of("return_to")); register(Atom.of("return_trace")); register(Atom.of("run_queue")); register(Atom.of("runnable")); register(Atom.of("runnable_ports")); register(Atom.of("runnable_procs")); register(Atom.of("running")); register(Atom.of("running_ports")); register(Atom.of("running_procs")); register(Atom.of("runtime")); register(Atom.of("safe")); register(Atom.of("save_calls")); register(Atom.of("scheduler ")); register(Atom.of("scheduler_id")); register(Atom.of("schedulers_online")); register(Atom.of("scheme")); register(Atom.of("scientific")); register(Atom.of("scope")); register(Atom.of("seconds")); register(Atom.of("sensitive")); register(Atom.of("sequential_tracer")); register(Atom.of("sequential_trace_token")); register(Atom.of("serial")); register(Atom.of("set")); register(Atom.of("set_cpu_topology")); register(Atom.of("set_data")); register(Atom.of("set_on_first_link")); register(Atom.of("set_on_first_spawn")); register(Atom.of("set_on_link")); register(Atom.of("set_on_spawn")); register(Atom.of("set_seq_token")); register(Atom.of("set_tcw")); register(Atom.of("set_tcw_fake")); register(Atom.of("separate")); register(Atom.of("shared")); register(Atom.of("silent")); register(Atom.of("size")); register(Atom.of("sl_alloc")); register(Atom.of("spawn_executable")); register(Atom.of("spawn_driver")); register(Atom.of("ssl_tls")); register(Atom.of("stack_size")); register(Atom.of("start")); register(Atom.of("status")); register(Atom.of("static")); register(Atom.of("stderr_to_stdout")); register(Atom.of("stop")); register(Atom.of("stream")); register(Atom.of("sunrm")); register(Atom.of("suspend")); register(Atom.of("suspended")); register(Atom.of("suspending")); register(Atom.of("sys_misc")); register(Atom.of("system")); register(Atom.of("system_error")); register(Atom.of("system_limit")); register(Atom.of("system_version")); register(Atom.of("system_architecture")); register(Atom.of("SYSTEM")); register(Atom.of("table")); register(Atom.of("term_to_binary_trap")); register(Atom.of("this")); register(Atom.of("thread_pool_size")); register(Atom.of("threads")); register(Atom.of("time_offset")); register(Atom.of("timeout")); register(Atom.of("timeout_value")); register(Atom.of("Times='*'")); register(Atom.of("timestamp")); register(Atom.of("total")); register(Atom.of("total_heap_size")); register(Atom.of("tpkt")); register(Atom.of("trace trace_ts traced")); register(Atom.of("trace_control_word")); register(Atom.of("tracer")); register(Atom.of("trap_exit")); register(Atom.of("try_clause")); register(Atom.of("true")); register(Atom.of("tuple")); register(Atom.of("type")); register(Atom.of("ucompile")); register(Atom.of("ucp")); register(Atom.of("undef")); register(Atom.of("ungreedy")); register(Atom.of("unicode")); register(Atom.of("unregister")); register(Atom.of("urun")); register(Atom.of("use_stdio")); register(Atom.of("used")); register(Atom.of("utf8")); register(Atom.of("unblock")); register(Atom.of("uniq")); register(Atom.of("unless_suspending")); register(Atom.of("unloaded")); register(Atom.of("unloading")); register(Atom.of("unloaded_only")); register(Atom.of("unload_cancelled")); register(Atom.of("value")); register(Atom.of("values")); register(Atom.of("version")); register(Atom.of("visibl")); register(Atom.of("waitin")); register(Atom.of("wall_cloc")); register(Atom.of("warnin")); register(Atom.of("warning_msg")); register(Atom.of("scheduler_wall_time")); register(Atom.of("wordsize")); register(Atom.of("write_concurrency")); register(Atom.of("xor")); register(Atom.of("x86")); register(Atom.of("yes")); register(Atom.of("yield")); } private static final AtomRegistry instance; private final Map<String, Atom> atoms; public AtomRegistry() { atoms = new HashMap<>(); } public Atom get(String name) { return atoms.get(name); } public static AtomRegistry instance() { return instance; } public static void register(Atom atom) { instance.atoms.put(atom.toString(), atom); } }