@plurnk/plurnk-mimetypes-text-erlang 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 PossumTech Laboratories
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,15 @@
1
+ # @plurnk/plurnk-mimetypes-text-erlang
2
+
3
+ text/x-erlang mimetype handler for plurnk-service. ANTLR-backed extraction using grammars-v4's `erlang` grammar.
4
+
5
+ ## Symbols emitted
6
+
7
+ Per SPEC §3 inclusion policy: classes, functions, methods, fields, interfaces, enums, types, modules, variables, constants. Imports excluded; locals inside function bodies excluded.
8
+
9
+ ## Install
10
+
11
+ ```bash
12
+ npm install @plurnk/plurnk-mimetypes-text-erlang
13
+ ```
14
+
15
+ Auto-discovered by `@plurnk/plurnk-mimetypes` when installed alongside it.
@@ -0,0 +1,7 @@
1
+ import { AntlrExtractor } from "@plurnk/plurnk-mimetypes";
2
+ import type { ExtractionVisitor } from "@plurnk/plurnk-mimetypes";
3
+ export default class TextErlang extends AntlrExtractor {
4
+ protected parseTree(content: string): unknown;
5
+ protected createVisitor(): ExtractionVisitor;
6
+ }
7
+ //# sourceMappingURL=TextErlang.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextErlang.d.ts","sourceRoot":"","sources":["../src/TextErlang.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAiB,MAAM,0BAA0B,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAalE,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,cAAc;IAClD,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQ7C,SAAS,CAAC,aAAa,IAAI,iBAAiB;CAG/C"}
@@ -0,0 +1,171 @@
1
+ import { AntlrExtractor, withExtractor } from "@plurnk/plurnk-mimetypes";
2
+ import { CharStream, CommonTokenStream } from "antlr4ng";
3
+ import { ErlangLexer } from "./generated/ErlangLexer.js";
4
+ import { ErlangParser } from "./generated/ErlangParser.js";
5
+ import { ErlangVisitor } from "./generated/ErlangVisitor.js";
6
+ // text/x-erlang handler. ANTLR grammar from grammars-v4/erlang.
7
+ //
8
+ // Parser entry rule: forms (form+ EOF)
9
+ // form: (attribute | function_) '.'
10
+ // function_: functionClause (';' functionClause)*
11
+ // functionClause: tokAtom clauseArgs clauseGuard clauseBody
12
+ // attribute: '-' tokAtom attrVal | '-' tokAtom typedAttrVal | ...
13
+ export default class TextErlang extends AntlrExtractor {
14
+ parseTree(content) {
15
+ const lexer = new ErlangLexer(CharStream.fromString(content));
16
+ const tokens = new CommonTokenStream(lexer);
17
+ const parser = new ErlangParser(tokens);
18
+ parser.removeErrorListeners();
19
+ return parser.forms();
20
+ }
21
+ createVisitor() {
22
+ return new TextErlangVisitor();
23
+ }
24
+ }
25
+ // SPEC §3 mapping for Erlang:
26
+ // -module(Name). → module
27
+ // -record(Name, {...}). → class (record IS a struct-like type)
28
+ // -type Name(...) :: ... → type
29
+ // functionClause → function (first clause names the function;
30
+ // multi-clause definitions share one symbol)
31
+ // -import/-export/-include/etc. → excluded (dependency / metadata)
32
+ // bodies → not visited; Erlang clause bodies aren't
33
+ // templates that host nested declarations
34
+ class TextErlangVisitor extends withExtractor(ErlangVisitor) {
35
+ #emittedFunctions = new Set();
36
+ visitAttribute = (ctx) => {
37
+ if (this.inBody)
38
+ return null;
39
+ // Attribute: '-' tokAtom attrVal | '-' tokAtom typedAttrVal | '-' tokAtom '(' typedAttrVal ')'
40
+ // Discriminate by the attribute name (first tokAtom).
41
+ const atoms = collectChildren(ctx, "tokAtom");
42
+ const head = atoms[0];
43
+ const name = head?.getText?.();
44
+ if (!name)
45
+ return null;
46
+ switch (name) {
47
+ case "module": {
48
+ // -module(Name). Name lives in attrVal as another tokAtom.
49
+ const modName = extractAttrAtom(ctx);
50
+ if (modName)
51
+ this.addSymbol("module", modName, ctx);
52
+ return null;
53
+ }
54
+ case "record": {
55
+ // -record(Name, {...}). Name is the first tokAtom in attrVal.
56
+ const recName = extractAttrAtom(ctx);
57
+ if (recName)
58
+ this.addSymbol("class", recName, ctx);
59
+ return null;
60
+ }
61
+ case "type":
62
+ case "opaque": {
63
+ const typeName = extractAttrAtom(ctx);
64
+ if (typeName)
65
+ this.addSymbol("type", typeName, ctx);
66
+ return null;
67
+ }
68
+ default:
69
+ // export / import / include / behaviour / etc. — excluded.
70
+ return null;
71
+ }
72
+ };
73
+ visitFunction_ = (ctx) => {
74
+ if (this.inBody)
75
+ return null;
76
+ const clauses = collectChildren(ctx, "functionClause");
77
+ if (clauses.length === 0)
78
+ return null;
79
+ const first = clauses[0];
80
+ const name = first.tokAtom?.()?.getText?.();
81
+ if (!name)
82
+ return null;
83
+ const params = extractErlangParams(first.clauseArgs?.());
84
+ // Dedupe in case of pathological re-emission.
85
+ const key = `${name}/${params.length}`;
86
+ if (this.#emittedFunctions.has(key))
87
+ return null;
88
+ this.#emittedFunctions.add(key);
89
+ this.addSymbol("function", name, ctx, params);
90
+ return null;
91
+ };
92
+ }
93
+ // Find the first tokAtom INSIDE the attribute's value (after the attribute
94
+ // name itself). The Erlang grammar wraps the value in a deep expr/expr100/
95
+ // expr150/... chain, so a shallow `tokAtom()` accessor returns only the
96
+ // attribute-name atom. Descend through the attrVal subtree looking for the
97
+ // first TokAtomContext leaf.
98
+ function extractAttrAtom(attrCtx) {
99
+ const ctx = attrCtx;
100
+ // For `-type` / `-opaque`, the value subtree is `typedAttrVal: expr '::'
101
+ // topType`. The type NAME is the leading atom of the expr (LHS), NOT
102
+ // the topType (which is the right-side definition). For attrVal-shaped
103
+ // values (`-module`, `-record`), walk the whole subtree.
104
+ const tav = ctx.typedAttrVal?.();
105
+ if (tav) {
106
+ const expr = tav.expr?.();
107
+ if (expr)
108
+ return findFirstTokAtom(expr);
109
+ }
110
+ const av = ctx.attrVal?.();
111
+ if (av)
112
+ return findFirstTokAtom(av);
113
+ return null;
114
+ }
115
+ // DFS preorder — walk children in order, finding the first TokAtomContext.
116
+ function findFirstTokAtom(root) {
117
+ const stack = [root];
118
+ while (stack.length > 0) {
119
+ const node = stack.pop();
120
+ if (!node)
121
+ continue;
122
+ if (node.constructor?.name === "TokAtomContext") {
123
+ return node.getText?.() ?? null;
124
+ }
125
+ const count = node.getChildCount?.() ?? 0;
126
+ // Push in reverse so we visit children left-to-right.
127
+ for (let i = count - 1; i >= 0; i -= 1)
128
+ stack.push(node.getChild?.(i));
129
+ }
130
+ return null;
131
+ }
132
+ // clauseArgs: patArgumentList
133
+ // patArgumentList: '(' patExprs? ')'
134
+ // patExprs: patExpr (',' patExpr)*
135
+ // We surface each patExpr's text as a "parameter name" — Erlang's patterns
136
+ // can be arbitrarily complex (bound variables, atoms, tuples), but for
137
+ // outline purposes the textual representation is honest about what the
138
+ // function clause matches.
139
+ function extractErlangParams(clauseArgs) {
140
+ if (!clauseArgs)
141
+ return [];
142
+ const node = clauseArgs;
143
+ const pal = node.patArgumentList?.();
144
+ if (!pal)
145
+ return [];
146
+ const palNode = pal;
147
+ const patExprs = palNode.patExprs?.();
148
+ if (!patExprs)
149
+ return [];
150
+ const peNode = patExprs;
151
+ const raw = peNode.patExpr?.();
152
+ const arr = Array.isArray(raw) ? raw : raw ? [raw] : [];
153
+ const out = [];
154
+ for (const p of arr) {
155
+ const t = p.getText?.();
156
+ if (t)
157
+ out.push(t);
158
+ }
159
+ return out;
160
+ }
161
+ function collectChildren(ctx, methodName) {
162
+ const node = ctx;
163
+ const accessor = node[methodName];
164
+ if (typeof accessor !== "function")
165
+ return [];
166
+ const raw = accessor.call(node);
167
+ if (Array.isArray(raw))
168
+ return raw;
169
+ return raw ? [raw] : [];
170
+ }
171
+ //# sourceMappingURL=TextErlang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextErlang.js","sourceRoot":"","sources":["../src/TextErlang.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import * as antlr from "antlr4ng";
2
+ export declare class ErlangLexer extends antlr.Lexer {
3
+ static readonly T__0 = 1;
4
+ static readonly T__1 = 2;
5
+ static readonly T__2 = 3;
6
+ static readonly T__3 = 4;
7
+ static readonly T__4 = 5;
8
+ static readonly T__5 = 6;
9
+ static readonly T__6 = 7;
10
+ static readonly T__7 = 8;
11
+ static readonly T__8 = 9;
12
+ static readonly T__9 = 10;
13
+ static readonly T__10 = 11;
14
+ static readonly T__11 = 12;
15
+ static readonly T__12 = 13;
16
+ static readonly T__13 = 14;
17
+ static readonly T__14 = 15;
18
+ static readonly T__15 = 16;
19
+ static readonly T__16 = 17;
20
+ static readonly T__17 = 18;
21
+ static readonly T__18 = 19;
22
+ static readonly T__19 = 20;
23
+ static readonly T__20 = 21;
24
+ static readonly T__21 = 22;
25
+ static readonly T__22 = 23;
26
+ static readonly T__23 = 24;
27
+ static readonly T__24 = 25;
28
+ static readonly T__25 = 26;
29
+ static readonly T__26 = 27;
30
+ static readonly T__27 = 28;
31
+ static readonly T__28 = 29;
32
+ static readonly T__29 = 30;
33
+ static readonly T__30 = 31;
34
+ static readonly T__31 = 32;
35
+ static readonly T__32 = 33;
36
+ static readonly T__33 = 34;
37
+ static readonly T__34 = 35;
38
+ static readonly T__35 = 36;
39
+ static readonly T__36 = 37;
40
+ static readonly T__37 = 38;
41
+ static readonly T__38 = 39;
42
+ static readonly T__39 = 40;
43
+ static readonly T__40 = 41;
44
+ static readonly T__41 = 42;
45
+ static readonly T__42 = 43;
46
+ static readonly T__43 = 44;
47
+ static readonly T__44 = 45;
48
+ static readonly T__45 = 46;
49
+ static readonly T__46 = 47;
50
+ static readonly T__47 = 48;
51
+ static readonly T__48 = 49;
52
+ static readonly T__49 = 50;
53
+ static readonly T__50 = 51;
54
+ static readonly T__51 = 52;
55
+ static readonly T__52 = 53;
56
+ static readonly T__53 = 54;
57
+ static readonly T__54 = 55;
58
+ static readonly T__55 = 56;
59
+ static readonly T__56 = 57;
60
+ static readonly T__57 = 58;
61
+ static readonly T__58 = 59;
62
+ static readonly T__59 = 60;
63
+ static readonly T__60 = 61;
64
+ static readonly T__61 = 62;
65
+ static readonly T__62 = 63;
66
+ static readonly T__63 = 64;
67
+ static readonly TokAtom = 65;
68
+ static readonly TokVar = 66;
69
+ static readonly TokFloat = 67;
70
+ static readonly TokInteger = 68;
71
+ static readonly TokChar = 69;
72
+ static readonly TokString = 70;
73
+ static readonly AttrName = 71;
74
+ static readonly Comment = 72;
75
+ static readonly WS = 73;
76
+ static readonly channelNames: string[];
77
+ static readonly literalNames: (string | null)[];
78
+ static readonly symbolicNames: (string | null)[];
79
+ static readonly modeNames: string[];
80
+ static readonly ruleNames: string[];
81
+ constructor(input: antlr.CharStream);
82
+ get grammarFileName(): string;
83
+ get literalNames(): (string | null)[];
84
+ get symbolicNames(): (string | null)[];
85
+ get ruleNames(): string[];
86
+ get serializedATN(): number[];
87
+ get channelNames(): string[];
88
+ get modeNames(): string[];
89
+ static readonly _serializedATN: number[];
90
+ private static __ATN;
91
+ static get _ATN(): antlr.ATN;
92
+ private static readonly vocabulary;
93
+ get vocabulary(): antlr.Vocabulary;
94
+ private static readonly decisionsToDFA;
95
+ }
96
+ //# sourceMappingURL=ErlangLexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErlangLexer.d.ts","sourceRoot":"","sources":["../../src/generated/ErlangLexer.ts"],"names":[],"mappings":"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"}