Where each piece of the codebase lives, grouped by area. The 6-stage pipeline
(lexer -> preproc -> parser -> resolver -> interpreter -> libraries) is described
in interpreter.md ; this page is the file-level index.
File Description
main.goCLI + source-context error formatting; argv forwarding to the user program.
repl.goInteractive REPL loop (TTY + bufio fallback).
lineedit.goRaw-mode line editor (cursor keys, word ops).
history.goIn-memory REPL history ring buffer.
dump.gotokens and ast subcommands.
astjson.goHand-rolled AST -> JSON emitter.
fmt.goToken-level source formatter; comment + blank-line preservation.
lint.golint subcommand: pipeline + config + suppression + JSON / human / GitHub rendering.
profile.goprofile subcommand: table / pprof / trace output.
test.gotest subcommand: test* discovery, setUp / tearDown, --isolated subprocess mode, text / TAP / JUnit reports.
devtools_tinygo.goTinyGo build: run-only stubs for tokens / ast / fmt / lint / profile / test.
File Description
examples_test.goGolden-file integration test over top-level examples/*.j (skips files without an expected/).
module_overlay_test.goRuns every modules/*_test.j overlay under jennifer test.
repl_test.goREPL inputComplete unit tests.
lineedit_test.goLine-editor state-machine tests.
dump_test.goAST-JSON validity and token-name tests.
fmt_test.goFormatter idempotence + behaviour + comment-preservation tests.
cross_file_error_test.goCross-file error reporting tests.
highlight_test.goDocs-site highlight-def generation test.
smtp_send_test.go / pop_recv_test.go / imap_recv_test.go / mail_xoauth2_test.goMail-module integration tests: smtp / pop / imap / XOAUTH2 against in-process fake servers.
redis_test.go / resque_test.goredis / resque integration tests against an in-process RESP server.
memcache_test.go / session_test.go / ratelimit_test.gomemcache and its reference modules against an in-process memcached fake.
http_test.go / gotify_test.go / rest_test.go / oauth_test.gohttp client + gotify / rest / oauth against an in-process net/http server.
File Description
lexer/token.goToken type definitions (incl. trivia tokens).
lexer/lexer.goScanner with optional file tagging; nested block comments.
lexer/lexer_test.goLexer tests.
preproc/preproc.goFile-import preprocessor; trivia stripping.
preproc/preproc_test.goPreprocessor tests.
module/resolve.goModule path classification + resolution.
module/sysmoddir.goSystem module dir: CLI / env / compile precedence + validation.
module/resolve_test.goResolver + sysmoddir tests.
File Description
ast.goAST node types + Sprint (incl. namespaced struct types).
parser.goRecursive-descent parser; namespaced struct literals.
resolver.goParse-time scope / slot resolution; undefined-variable + shadowing errors.
fold.goParse-time constant folding of literal-only subtrees.
parser_test.go / fold_test.goParser and constant-folding tests (incl. “runtime error stays runtime”).
File Description
value.goRuntime Value tagged union (incl. struct + namespaced-struct + KindObject tags).
environment.goScoped symbol table (name map + slot slice).
interpreter.goTree-walking evaluator; namespaced-struct + object registration and resolution.
interpreter_test.goEnd-to-end interpreter tests.
interactive_test.goREPL EvalInteractive tests.
namespace_test.goNamespaced builtins + constants tests.
namespaced_struct_test.goNamespaced struct tests (synthetic widgets lib).
structs_test.goUser-defined struct tests.
trycatch_test.gotry / catch / throw tests.
spawn_test.gospawn / task of T runtime + registry tests.
control_flow_test.gobreak / continue / repeat / exit tests.
collections_test.goLists, maps, iteration tests.
compound_test.goNested list-of-list / map-of-list / chained-index tests.
bytes_test.goBytes type + non-decimal literals + bit-op tests.
callbyname_test.goCallByName / CallByNameWith dispatch + RaiseError classification tests.
value_alias_test.goShared-marker COW alias-stress tests.
collection_typing_test.goGeneric collection validated entry-by-entry against the declared element type at def-init + assign.
File Description
io/iolib.go, io/format.go, io/input.goio: entrypoint; printf / sprintf + verb-modifier mini-language; readLine / readBytes / readChars / eof.
convert/convert.goconvert: toInt / toFloat / toString / toBool / typeOf / objectType + UTF-8 codecs + codepoint bridges.
math/mathlib.gomath: abs / min / max / sqrt / pow / floor / ceil / round / rand*; PI / E.
strings/stringslib.gostrings: case, predicates, slicing, split / chars / join.
lists/listslib.golists: push / pop / first / last / head / tail / reverse / sort / contains / concat / slice / shuffle / range.
maps/mapslib.gomaps: keys / values / has / delete / merge.
os/oslib.go, os/exec.goos: PLATFORM / ARCH / EOL / DIRSEP / PATHSEP / ARGS + getEnv / hasFlag / flag / isTerminal; external-program execution (run / spawn / wait / poll / kill).
meta/metalib.gometa: VERSION / BUILD / SYSMODDIR (interpreter self-identity).
time/timelib.go, time/zone.go, time/format.gotime: Time / Duration, Unix + calendar + arithmetic; fixed-offset Zone, UTC / local / inZone; strftime format / parse + ISO round-trip.
hash/hashlib.gohash: MD5 / SHA-1 / SHA-256 one-shot + streaming via a codec table.
crc/crclib.gocrc: CRC-32 / CRC-64 (big-endian) one-shot + streaming.
compress/compresslib.gocompress: pack / unpack (gzip / zlib / deflate) + streaming (compress.Stream); optional level.
archive/archivelib.goarchive: tar / zip / tar.gz pack / unpack over bytes (archive.Entry); no fs dependency.
encoding/encodinglib.go, encoding/codecs.go, encoding/codecs_gen.go, encoding/gen_codecs.goencoding: introspection + toText / fromText + encode / decode; hand-written ascii / ebcdic + generated ISO-8859-N / Windows-125N tables (codecs_gen.go is generated, do not edit; gen_codecs.go is the go:build ignore codegen).
json/jsonlib.go, json/jsondecode.gojson: RFC 8259 encode / encodePretty + Value emitter; recursive-descent decoder -> opaque json.Value (KindObject), positioned errors.
task/tasklib.gotask: wait / poll / discard / waitAll / waitAny over task of T handles.
fs/fslib.go, fs/handles.gofs: one-shot read / write / append + metadata + dir ops; buffered fs.File handles.
net/netlib.go, net/netlib_std.go, net/netlib_tinygo.gonet: shared install / dispatch; !tinygo full TCP / TLS / UDP / DNS; tinygo friendly-error stubs.
regex/regexlib.goregex: matches / find / findAll / replace / split / escape + regex.Match + 128-entry LRU pattern cache.
testing/testinglib.go, testing/assertions.gotesting: run / runWith / results / reset / report (text / TAP / JUnit) + exit interception; the six assert* builtins.
uuid/uuidlib.gouuid: generate("v4"/"v7") + parse / isValid / version + NIL (RFC 9562).
*/…_test.goEach library has a co-located _test.go with its unit tests (canonical vectors, round-trips, boundary errors).
File Description
internal/stdlib/stdlib.goInstallAll: the single registration point for every system library; run / repl / profile / test all call it (the seam for build-time selection).
internal/lint/lint.golint checks: Diagnostic + grouped-ID registry (L0nn source / L1nn correctness / L2nn style / L3nn lifecycle) + KnownIDs / selectable / Catalog.
internal/lint/run.goCheck driver + threshold Config + source-error diagnostic builder.
internal/lint/checks.goThe individual check implementations.
internal/lint/scope.goScope-aware traversal for binding-visibility checks (L101 unused-local, L104 throw-non-error).
internal/lint/walk.goFlat AST walker for node-shape checks (L102 / L103 / L105 / L201 / L202).
internal/lint/config.go--checks / .jennifer-lint selection parsing (selectable IDs only).
internal/lint/suppress.go# lint-disable directive parsing + application; a malformed / unknown-ID directive becomes an L004 finding.
internal/profile/profile.goprofile collector: per-position hit counts + wall-clock (+ optional alloc counting).
internal/profile/render.goTable + Chrome-trace renderers.
internal/profile/pprof.goGzipped-pprof output (hand-encoded, zero-dependency).
File Description
internal/version/version.goDefault Version = "dev".
internal/version/version_gen.goGENERATED by scripts/gen-version.sh (gitignored).
scripts/version.shComputes the version string from git state.
scripts/gen-version.shWrites version_gen.go before each build.
Makefilebuild (both binaries) / build-tinygo / build-go / test / clean / version.
Distributable .j modules brought in with import. Each X.j ships a
co-located X_test.j white-box overlay (run under jennifer test) and a
examples/modules/X_demo.j demo; a reference doc lives under
docs/modules/ .
Module Description
ansi.jTerminal styling as string wrappers (color / style / rgb / strip); TTY-aware.
csv.jRFC 4180 CSV parse / format (+ any delimiter) + header-keyed records.
semver.jStrict SemVer 2.0.0 parse / compare / sort / increment.
htmlwriter.jBuild an HTML element tree and render escaped HTML5.
markdown.jCommonMark subset -> HTML / ANSI, plus Markdown authoring helpers.
mime.jBuild + parse MIME messages (RFC 5322 / 2045, RFC 2047 encoded-words).
smtp.j / pop.j / imap.jMail clients over net: send (SMTP), receive (POP3 / IMAP4rev1).
sasl.jSASL auth encoders (plain / login / bearer XOAUTH2), pure base64.
idna.jInternationalized domain names (Punycode toAscii / toUnicode).
redis.jRedis RESP2 client over net.
resque.jResque-wire-compatible background jobs (on redis).
memcache.jmemcached text-protocol client over net.
session.jServer-side sessions (on memcache + uuid + json).
ratelimit.jFixed-window rate limiter (on memcache).
http.jHTTP/1.1 client over net (https via TLS).
gotify.jGotify push notifications (on http).
rest.jErgonomic REST layer (on http + json).
oauth.jOAuth2 client - get-a-token grants (on http + json; feeds sasl).
Path Description
examples/*.jExample programs.
examples/expected/*.txtExpected stdout per example (no entry == not in the golden suite).
examples/with_import/Subdirectory demonstrating file imports.
examples/showcase/Helpers spliced by showcase.j.
examples/modules/*_demo.jRunnable demo per shipped module (smoke-run in CI; not golden-checked).