astn 0.106.0 → 0.110.1

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.
@@ -0,0 +1,65 @@
1
+ import * as _et from 'exupery-core-types';
2
+ import * as types from "./types";
3
+ export type Range = {
4
+ 'start': types.Relative_Location;
5
+ 'end': types.Relative_Location;
6
+ };
7
+ export type Text_Edit = [
8
+ 'insert',
9
+ {
10
+ 'location': types.Relative_Location;
11
+ 'text': string;
12
+ }
13
+ ] | [
14
+ 'replace',
15
+ {
16
+ 'range': Range;
17
+ 'text': string;
18
+ }
19
+ ] | [
20
+ 'delete',
21
+ {
22
+ 'range': Range;
23
+ }
24
+ ];
25
+ export type Text_Edits = _et.Array<Text_Edit>;
26
+ export declare const Whitespace: ($: types.Whitespace, $p: {
27
+ "remove commas": boolean;
28
+ "indentation string": string;
29
+ "current indentation": string;
30
+ }) => Text_Edits;
31
+ export declare const Trivia: ($: types.Trivia, $p: {
32
+ "remove commas": boolean;
33
+ "indentation string": string;
34
+ "current indentation": string;
35
+ }) => Text_Edits;
36
+ export declare const Structural_Token: ($: types.Structural_Token, $p: {
37
+ "remove commas": boolean;
38
+ "indentation string": string;
39
+ "current indentation": string;
40
+ }) => Text_Edits;
41
+ export declare const String: ($: types.StringX, $p: {
42
+ "remove commas": boolean;
43
+ "indentation string": string;
44
+ "current indentation": string;
45
+ }) => Text_Edits;
46
+ export declare const Key_Value_Pairs: ($: types.Key_Value_Pairs, $p: {
47
+ "remove commas": boolean;
48
+ "indentation string": string;
49
+ "current indentation": string;
50
+ }) => Text_Edits;
51
+ export declare const Elements: ($: types.Elements, $p: {
52
+ "remove commas": boolean;
53
+ "indentation string": string;
54
+ "current indentation": string;
55
+ }) => Text_Edits;
56
+ export declare const Value: ($: types.Value, $p: {
57
+ "remove commas": boolean;
58
+ "indentation string": string;
59
+ "current indentation": string;
60
+ }) => Text_Edits;
61
+ export declare const Document: ($: types.Document, $p: {
62
+ "remove commas": boolean;
63
+ "indentation string": string;
64
+ "current indentation": string;
65
+ }) => Text_Edits;
package/dist/format.js ADDED
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.Document = exports.Value = exports.Elements = exports.Key_Value_Pairs = exports.String = exports.Structural_Token = exports.Trivia = exports.Whitespace = void 0;
27
+ const _ea = __importStar(require("exupery-core-alg"));
28
+ const pso = __importStar(require("pareto-standard-operations"));
29
+ const increment_location = (location, increment) => {
30
+ return {
31
+ 'column': location.column + increment,
32
+ 'line': location.line,
33
+ };
34
+ };
35
+ const op = {
36
+ 'flatten': pso.pure.list.flatten,
37
+ };
38
+ const Whitespace = ($, $p) => {
39
+ return _ea.array_literal([
40
+ //FIXME
41
+ ]);
42
+ };
43
+ exports.Whitespace = Whitespace;
44
+ const Trivia = ($, $p) => {
45
+ return op.flatten(_ea.array_literal([
46
+ (0, exports.Whitespace)($['leading whitespace'], $p),
47
+ op.flatten($['comments'].map(($) => {
48
+ return op.flatten(_ea.array_literal([
49
+ //FIXME
50
+ // _ea.cc($['type'], ($) => {
51
+ // switch ($[0]) {
52
+ // case 'line': return _ea.ss($, ($) => _ea.array_literal([]))
53
+ // case 'block': return _ea.ss($, ($) => _ea.array_literal([]))
54
+ // default: return _ea.au($[0])
55
+ // }
56
+ // }),
57
+ // _ea.array_literal([$['content']]),
58
+ // _ea.array_literal([$['begin']]),
59
+ // _ea.array_literal([$['end']]),
60
+ (0, exports.Whitespace)($['trailing whitespace'], $p),
61
+ ]));
62
+ })),
63
+ ]));
64
+ };
65
+ exports.Trivia = Trivia;
66
+ const Structural_Token = ($, $p) => {
67
+ return (0, exports.Trivia)($.trivia, $p);
68
+ };
69
+ exports.Structural_Token = Structural_Token;
70
+ const String = ($, $p) => {
71
+ return op.flatten(_ea.array_literal([
72
+ (0, exports.Trivia)($.trivia, $p),
73
+ //FIX right type
74
+ ]));
75
+ };
76
+ exports.String = String;
77
+ const Key_Value_Pairs = ($, $p) => {
78
+ return op.flatten($.map(($) => {
79
+ return op.flatten(_ea.array_literal([
80
+ (0, exports.String)($.key, $p),
81
+ $.value.transform(($) => op.flatten(_ea.array_literal([
82
+ (0, exports.Structural_Token)($[':'], $p),
83
+ (0, exports.Value)($.value, $p),
84
+ ])), () => _ea.array_literal([])),
85
+ $[','].transform(($) => op.flatten(_ea.array_literal([
86
+ $p['remove commas']
87
+ ? _ea.array_literal([['replace', { 'range': { 'start': $.location.relative, 'end': $.location.relative }, 'text': '' }]])
88
+ : _ea.array_literal([]),
89
+ (0, exports.Structural_Token)($, $p)
90
+ ])), () => _ea.array_literal([])),
91
+ ]));
92
+ }));
93
+ };
94
+ exports.Key_Value_Pairs = Key_Value_Pairs;
95
+ const Elements = ($, $p) => {
96
+ return op.flatten($.map(($) => {
97
+ return op.flatten(_ea.array_literal([
98
+ (0, exports.Value)($.value, $p),
99
+ $[','].transform(($) => op.flatten(_ea.array_literal([
100
+ $p['remove commas']
101
+ ? _ea.array_literal([['replace', { 'range': { 'start': $.location.relative, 'end': increment_location($.location.relative, 1) }, 'text': '' }]])
102
+ : _ea.array_literal([]),
103
+ (0, exports.Structural_Token)($, $p)
104
+ ])), () => _ea.array_literal([])),
105
+ ]));
106
+ }));
107
+ };
108
+ exports.Elements = Elements;
109
+ const Value = ($, $p) => {
110
+ return _ea.cc($.type, ($) => {
111
+ switch ($[0]) {
112
+ case 'string': return _ea.ss($, ($) => _ea.array_literal([]));
113
+ case 'indexed collection': return _ea.ss($, ($) => _ea.cc($, ($) => {
114
+ switch ($[0]) {
115
+ case 'dictionary': return _ea.ss($, ($) => op.flatten(_ea.array_literal([
116
+ (0, exports.Structural_Token)($['{'], $p),
117
+ (0, exports.Key_Value_Pairs)($['entries'], $p),
118
+ (0, exports.Structural_Token)($['}'], $p),
119
+ ])));
120
+ case 'verbose group': return _ea.ss($, ($) => op.flatten(_ea.array_literal([
121
+ (0, exports.Structural_Token)($['('], $p),
122
+ (0, exports.Key_Value_Pairs)($['entries'], $p),
123
+ (0, exports.Structural_Token)($[')'], $p),
124
+ ])));
125
+ default: return _ea.au($[0]);
126
+ }
127
+ }));
128
+ case 'ordered collection': return _ea.ss($, ($) => _ea.cc($, ($) => {
129
+ switch ($[0]) {
130
+ case 'list': return _ea.ss($, ($) => op.flatten(_ea.array_literal([
131
+ (0, exports.Structural_Token)($['['], $p),
132
+ (0, exports.Elements)($.elements, $p),
133
+ (0, exports.Structural_Token)($[']'], $p),
134
+ ])));
135
+ case 'concise group': return _ea.ss($, ($) => op.flatten(_ea.array_literal([
136
+ (0, exports.Structural_Token)($['<'], $p),
137
+ (0, exports.Elements)($['elements'], $p),
138
+ (0, exports.Structural_Token)($['>'], $p),
139
+ ])));
140
+ default: return _ea.au($[0]);
141
+ }
142
+ }));
143
+ case 'include': return _ea.ss($, ($) => op.flatten(_ea.array_literal([
144
+ (0, exports.Structural_Token)($['@'], $p),
145
+ (0, exports.String)($['path'], $p),
146
+ ])));
147
+ case 'tagged value': return _ea.ss($, ($) => op.flatten(_ea.array_literal([
148
+ (0, exports.Structural_Token)($['|'], $p),
149
+ (0, exports.String)($['state'], $p),
150
+ (0, exports.Value)($['value'], $p),
151
+ ])));
152
+ case 'not set': return _ea.ss($, ($) => (0, exports.Structural_Token)($['~'], $p));
153
+ case 'set optional value': return _ea.ss($, ($) => op.flatten(_ea.array_literal([
154
+ (0, exports.Structural_Token)($['*'], $p),
155
+ (0, exports.Value)($['value'], $p),
156
+ ])));
157
+ default: return _ea.au($[0]);
158
+ }
159
+ });
160
+ };
161
+ exports.Value = Value;
162
+ const Document = ($, $p) => {
163
+ return op.flatten(_ea.array_literal([
164
+ $.header.transform(($) => op.flatten(_ea.array_literal([
165
+ (0, exports.Structural_Token)($['!'], $p),
166
+ (0, exports.Value)($.value, $p)
167
+ ])), () => _ea.array_literal([])),
168
+ (0, exports.Value)($.content, $p),
169
+ ]));
170
+ };
171
+ exports.Document = Document;
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Zvcm1hdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLHNEQUF1QztBQUV2QyxnRUFBaUQ7QUFTakQsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLFFBQWlDLEVBQUUsU0FBaUIsRUFBMkIsRUFBRTtJQUN6RyxPQUFPO1FBQ0gsUUFBUSxFQUFFLFFBQVEsQ0FBQyxNQUFNLEdBQUcsU0FBUztRQUNyQyxNQUFNLEVBQUUsUUFBUSxDQUFDLElBQUk7S0FDeEIsQ0FBQTtBQUNMLENBQUMsQ0FBQTtBQWlCRCxNQUFNLEVBQUUsR0FBRztJQUNQLFNBQVMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO0NBQ25DLENBQUE7QUFFTSxNQUFNLFVBQVUsR0FBRyxDQUN0QixDQUFtQixFQUNuQixFQUlDLEVBQ1MsRUFBRTtJQUNaLE9BQU8sR0FBRyxDQUFDLGFBQWEsQ0FBQztJQUNyQixPQUFPO0tBQ1YsQ0FBQyxDQUFBO0FBQ04sQ0FBQyxDQUFBO0FBWFksUUFBQSxVQUFVLGNBV3RCO0FBRU0sTUFBTSxNQUFNLEdBQUcsQ0FDbEIsQ0FBZSxFQUNmLEVBSUMsRUFDUyxFQUFFO0lBQ1osT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7UUFDaEMsSUFBQSxrQkFBVSxFQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN2QyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMvQixPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQztnQkFDaEMsT0FBTztnQkFDUCw2QkFBNkI7Z0JBQzdCLHNCQUFzQjtnQkFDdEIsc0VBQXNFO2dCQUN0RSx1RUFB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
@@ -0,0 +1,24 @@
1
+ interface Array<T> {
2
+ [n: number]: T;
3
+ }
4
+ interface Boolean {
5
+ }
6
+ interface CallableFunction {
7
+ }
8
+ interface Function {
9
+ (...args: unknown[]): unknown;
10
+ }
11
+ interface IArguments {
12
+ }
13
+ interface NewableFunction {
14
+ }
15
+ interface Number {
16
+ }
17
+ interface Object {
18
+ }
19
+ interface RegExp {
20
+ }
21
+ interface String {
22
+ }
23
+ interface Promise<T> {
24
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9nbG9iYWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
@@ -0,0 +1,3 @@
1
+ export * from "./types";
2
+ export * from "./parse";
3
+ export * as format from "./format";
package/dist/index.js ADDED
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.format = void 0;
30
+ __exportStar(require("./types"), exports);
31
+ __exportStar(require("./parse"), exports);
32
+ exports.format = __importStar(require("./format"));
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwwQ0FBdUI7QUFDdkIsMENBQXVCO0FBQ3ZCLG1EQUFrQyJ9
@@ -0,0 +1,81 @@
1
+ import * as _et from 'exupery-core-types';
2
+ import * as types from "./types";
3
+ type Parse_Error_Type = [
4
+ 'lexer',
5
+ ['unexpected control character', number] | ['missing character after escape', null] | ['unexpected end of line in delimited string', null] | ['unexpected character', number] | ['unterminated string', null] | ['unterminated block comment', null] | ['unterminated unicode escape sequence', null] | ['invalid unicode escape sequence', null] | ['unknown escape character', null] | ['unexpected end of input', null] | ['dangling slash', null]
6
+ ] | [
7
+ 'parser',
8
+ ['unexpected end of input', null] | [
9
+ 'unexpected token',
10
+ {
11
+ 'found': Lexer.Token_Type;
12
+ 'expected': _et.Array<string>;
13
+ }
14
+ ]
15
+ ];
16
+ type Parse_Error = {
17
+ 'type': Parse_Error_Type;
18
+ 'location': _et.Optional_Value<types.Location>;
19
+ };
20
+ export declare namespace Lexer {
21
+ type Annotated_Token = {
22
+ readonly 'annotation': types.Structural_Token;
23
+ readonly 'trailing trivia': types.Trivia;
24
+ readonly 'type': Token_Type;
25
+ };
26
+ type Token_Type = readonly ['{', null] | readonly ['}', null] | readonly ['[', null] | readonly [']', null] | readonly ['(', null] | readonly [')', null] | readonly ['<', null] | readonly ['>', null] | readonly ['!', null] | readonly ['@', null] | readonly ['~', null] | readonly ['*', null] | readonly [',', null] | readonly [':', null] | readonly ['|', null] | readonly ['string', types.String_Core];
27
+ type Tokenizer_Result = {
28
+ readonly 'leading trivia': types.Trivia;
29
+ readonly 'tokens': _et.Array<Annotated_Token>;
30
+ };
31
+ type String_Iterator = {
32
+ 'consume character': () => void;
33
+ 'consume string': ($: string) => void;
34
+ /**
35
+ * returns the current character, or null if the end of the string has been reached.
36
+ * equivalent to `look ahead(0)`
37
+ */
38
+ 'get current character': () => number | null;
39
+ 'look ahead': ($: number) => number | null;
40
+ 'create offset location info': (subtract: number) => types.Location;
41
+ 'create location info': () => types.Location;
42
+ 'create location info string': () => string;
43
+ /**
44
+ * if no non-whitespace character has been found yet on the current line,
45
+ * this will return the current character offset,
46
+ * otherwise it will return the offset of that first non-whitespace character
47
+ * (which is the indentation of the line)
48
+ */
49
+ 'get line indentation': () => number;
50
+ 'starts with': ($: string) => boolean;
51
+ };
52
+ /**
53
+ * Creates a string iterator that allows iterating over characters in a string,
54
+ * while keeping track of line numbers, character offsets, and line indentation.
55
+ */
56
+ const create_string_iterator: ($: string, $p: {
57
+ "tab size": number;
58
+ }) => String_Iterator;
59
+ const Annotated_Token: (st: String_Iterator) => Annotated_Token;
60
+ const Tokenizer_Result: ($: null, $p: {
61
+ "string iterator": String_Iterator;
62
+ }) => Tokenizer_Result;
63
+ }
64
+ export declare namespace Parser {
65
+ type Token_Iterator = {
66
+ 'get required token': () => Lexer.Annotated_Token;
67
+ 'consume token': () => void;
68
+ };
69
+ const create_token_iterator: ($: _et.Array<Lexer.Annotated_Token>) => Token_Iterator;
70
+ namespace type_parsers {
71
+ const Document: (token_iterator: Token_Iterator) => types.Document;
72
+ const Elements: (token_iterator: Token_Iterator, end_reached: ($: Lexer.Token_Type) => boolean) => types.Elements;
73
+ const Key_Value_Pairs: (token_iterator: Token_Iterator, end_reached: ($: Lexer.Token_Type) => boolean) => types.Key_Value_Pairs;
74
+ const Value: (token_iterator: Token_Iterator) => types.Value;
75
+ }
76
+ type Parse_Result = ['failure', Parse_Error] | ['success', types.Document];
77
+ const parse: ($: string, $p: {
78
+ "tab size": number;
79
+ }) => Parse_Result;
80
+ }
81
+ export {};