astn 0.111.20 → 0.111.21

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.
Files changed (39) hide show
  1. package/package.json +6 -6
  2. package/LICENSE +0 -17
  3. package/README.md +0 -525
  4. package/dist/procedures/test.d.ts +0 -2
  5. package/dist/procedures/test.js +0 -38
  6. package/dist/test.d.ts +0 -2
  7. package/dist/test.js +0 -30
  8. package/documentation/railroad_diagram/diagram/apostrophed_string.png +0 -0
  9. package/documentation/railroad_diagram/diagram/astn_document.png +0 -0
  10. package/documentation/railroad_diagram/diagram/backticked_string.png +0 -0
  11. package/documentation/railroad_diagram/diagram/comment.png +0 -0
  12. package/documentation/railroad_diagram/diagram/concise_group.png +0 -0
  13. package/documentation/railroad_diagram/diagram/content.png +0 -0
  14. package/documentation/railroad_diagram/diagram/dictionary.png +0 -0
  15. package/documentation/railroad_diagram/diagram/elements.png +0 -0
  16. package/documentation/railroad_diagram/diagram/escaped_character.png +0 -0
  17. package/documentation/railroad_diagram/diagram/four_hexadecimal_digits.png +0 -0
  18. package/documentation/railroad_diagram/diagram/header.png +0 -0
  19. package/documentation/railroad_diagram/diagram/hexadecimal_digit.png +0 -0
  20. package/documentation/railroad_diagram/diagram/ignorable.png +0 -0
  21. package/documentation/railroad_diagram/diagram/include.png +0 -0
  22. package/documentation/railroad_diagram/diagram/key_value_pairs.png +0 -0
  23. package/documentation/railroad_diagram/diagram/line_comment.png +0 -0
  24. package/documentation/railroad_diagram/diagram/list.png +0 -0
  25. package/documentation/railroad_diagram/diagram/newline_character.png +0 -0
  26. package/documentation/railroad_diagram/diagram/normal_character.png +0 -0
  27. package/documentation/railroad_diagram/diagram/normal_or_newline_character.png +0 -0
  28. package/documentation/railroad_diagram/diagram/quoted_string.png +0 -0
  29. package/documentation/railroad_diagram/diagram/rr-2.5.png +0 -0
  30. package/documentation/railroad_diagram/diagram/set_optional_value.png +0 -0
  31. package/documentation/railroad_diagram/diagram/string.png +0 -0
  32. package/documentation/railroad_diagram/diagram/string_content_character.png +0 -0
  33. package/documentation/railroad_diagram/diagram/tagged_value.png +0 -0
  34. package/documentation/railroad_diagram/diagram/traditional_comment.png +0 -0
  35. package/documentation/railroad_diagram/diagram/undelimited_string.png +0 -0
  36. package/documentation/railroad_diagram/diagram/value.png +0 -0
  37. package/documentation/railroad_diagram/diagram/verbose_group.png +0 -0
  38. package/documentation/railroad_diagram/diagram/whitespace.png +0 -0
  39. package/documentation/railroad_diagram/index.md +0 -425
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "astn",
3
- "version": "0.111.20",
3
+ "version": "0.111.21",
4
4
  "description": "A TypeScript library for parsing and formatting ASTN (Abstract Syntax Tree Notation) - a human-editable data format for structured content",
5
5
  "main": "./dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -49,10 +49,10 @@
49
49
  "dependencies": {
50
50
  "exupery-core-alg": "^0.1.12",
51
51
  "exupery-core-bin": "^0.1.18",
52
- "exupery-core-data": "^0.1.10",
53
- "exupery-core-dev": "^0.1.2",
54
- "pareto-fountain-pen": "^0.1.33",
55
- "pareto-json": "^0.1.10",
56
- "pareto-standard-operations": "^0.1.12"
52
+ "exupery-core-data": "^0.1.11",
53
+ "exupery-core-dev": "^0.1.3",
54
+ "pareto-fountain-pen": "^0.1.34",
55
+ "pareto-json": "^0.1.11",
56
+ "pareto-standard-operations": "^0.1.14"
57
57
  }
58
58
  }
package/LICENSE DELETED
@@ -1,17 +0,0 @@
1
- Apache License
2
- Version 2.0, January 2004
3
- http://www.apache.org/licenses/
4
-
5
- Copyright (c) 2025 Corno
6
-
7
- Licensed under the Apache License, Version 2.0 (the "License");
8
- you may not use this file except in compliance with the License.
9
- You may obtain a copy of the License at
10
-
11
- http://www.apache.org/licenses/LICENSE-2.0
12
-
13
- Unless required by applicable law or agreed to in writing, software
14
- distributed under the License is distributed on an "AS IS" BASIS,
15
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- See the License for the specific language governing permissions and
17
- limitations under the License.
package/README.md DELETED
@@ -1,525 +0,0 @@
1
- <div align="center">
2
- <img src="./images/icon.png" alt="ASTN Logo" width="120" height="120"/>
3
-
4
- # ASTN
5
- ### Abstract Syntax Tree Notation
6
-
7
- [![npm version](https://img.shields.io/npm/v/astn?color=blue&style=flat-square)](https://www.npmjs.com/package/astn)
8
- [![TypeScript](https://img.shields.io/badge/TypeScript-Ready-blue?style=flat-square&logo=typescript)](https://www.typescriptlang.org/)
9
- [![License](https://img.shields.io/badge/License-Apache%202.0-green?style=flat-square)](LICENSE)
10
- [![VS Code Extension](https://img.shields.io/badge/VS%20Code-Extension%20Available-blue?style=flat-square&logo=visualstudiocode)](https://marketplace.visualstudio.com/items?itemName=astn)
11
-
12
- **A human-editable data format that extends JSON with type awareness**
13
-
14
- <br/>
15
-
16
- <div align="center">
17
- <table>
18
- <tr>
19
- <td align="center" style="border: 2px solid #0366d6; border-radius: 8px; padding: 16px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white;">
20
- <strong>💡 ASTN does for JSON what TypeScript does for JavaScript</strong>
21
- </td>
22
- </tr>
23
- </table>
24
- </div>
25
-
26
- <br/>
27
-
28
- *Enhanced readability • Rich data structures • Built-in formatting*
29
- </div>
30
-
31
- ---
32
-
33
- ## 📚 Table of Contents
34
-
35
- - [✨ Features](#features)
36
- - [🚀 Quick Start](#quick-start)
37
- - [🆚 JSON vs ASTN Comparison](#json-vs-astn-comparison)
38
- - [📖 ASTN Syntax Overview](#astn-syntax-overview)
39
- - [🔧 VS Code Extension](#vs-code-extension)
40
- - [⚡ CLI Usage](#cli-usage)
41
- - [📚 Documentation](#documentation)
42
-
43
- ---
44
-
45
- **ASTN is a superset of JSON** - any valid JSON document is also valid ASTN, but ASTN provides additional features for enhanced readability and functionality.
46
-
47
- ## ✨ Features
48
-
49
- <table>
50
- <tr>
51
- <td width="50%">
52
-
53
- ### 📝 **Enhanced Syntax**
54
- - 📋 **Multiple string types** - quoted, backticked, apostrophed, and undelimited
55
- - 💬 **Comments** - Line and block comments throughout
56
- - ✨ **Flexible punctuation** - Optional commas, trailing commas allowed
57
-
58
- </td>
59
- <td width="50%">
60
-
61
- ### 🏗️ **Rich Data Structures**
62
- - 🗂️ **Dictionaries & Lists** - Clear instance vs schema distinction
63
- - 🏷️ **Tagged values** - Type information embedded in data
64
- - 📄 **Document headers** - Optional metadata for documents
65
-
66
- </td>
67
- </tr>
68
- <tr>
69
- <td width="50%">
70
-
71
- ### 🔗 **Advanced Features**
72
- - � **File inclusion** - Import other files with `@` syntax
73
- - ❓ **Optional values** - Explicit optional/not-set markers
74
- - 🎯 **Groups** - Concise and verbose structured data
75
-
76
- </td>
77
- <td width="50%">
78
-
79
- ### 🚀 **Developer Experience**
80
- - ⚡ **Fast parsing** - Efficient lexer and parser
81
- - � **Rich validation** - Comprehensive error reporting
82
- - 🎨 **Auto-formatting** - Built-in code formatter
83
-
84
- </td>
85
- </tr>
86
- </table>
87
-
88
- ## 🚀 Quick Start
89
-
90
- ### 📝 For Authoring ASTN Files
91
-
92
- Want to start writing ASTN files or create ASTN schemas? Get the best editing experience with VS Code:
93
-
94
- 1. **Install VS Code Extension**
95
- - Search for "**astn**" in the VS Code Extensions marketplace
96
- - Or install directly: `ext install astn`
97
-
98
- 2. **Create a new file** with `.astn` extension
99
-
100
- 3. **Create rich textual languages effortlessly** - Design expressive, domain-specific formats that read naturally and feel powerful, without needing to learn anything about parsing or language implementation. ASTN handles all the technical complexity while you focus on creating beautiful, meaningful syntax.
101
-
102
- 4. **Start writing!** Check out our [sample ASTN file](./sample_astn_file.astn) to see the syntax in action
103
-
104
- 5. **Features you'll get:**
105
- - 🎨 Syntax highlighting
106
- - 🔍 Real-time error detection
107
- - 📝 IntelliSense and autocompletion
108
- - 🔧 Automatic formatting
109
-
110
- ### 💻 For Software Development
111
-
112
- Want to parse and work with ASTN files in your application?
113
-
114
- #### Installation
115
-
116
- ```bash
117
- npm install astn
118
- ```
119
-
120
- #### Parsing ASTN
121
-
122
- ```typescript
123
- import { Parser } from 'astn';
124
-
125
- const source = `
126
- ! header "example"
127
- {
128
- \`name\`: "John Doe"
129
- \`age\`: | 'number' "30"
130
- \`hobbies\`: [
131
- "reading"
132
- "coding"
133
- ]
134
- }
135
- `;
136
-
137
- const result = Parser.parse(source, { 'tab size': 4 });
138
-
139
- if (result[0] === 'success') {
140
- console.log('Parsed successfully:', result[1]);
141
- } else {
142
- console.error('Parse error:', result[1]);
143
- }
144
- ```
145
-
146
- #### Formatting ASTN
147
-
148
- ```typescript
149
- import * as format from 'astn/format';
150
- import * as types from 'astn';
151
-
152
- // Format a parsed document
153
- const edits = format.Document(document, {
154
- 'remove commas': false,
155
- 'indentation string': ' ',
156
- 'current indentation': ''
157
- });
158
- ```
159
-
160
- #### Error Handling
161
-
162
- ```typescript
163
- import * as create_error_message from 'astn/create_error_message';
164
-
165
- const result = Parser.parse(invalidSource, { 'tab size': 4 });
166
-
167
- if (result[0] === 'failure') {
168
- const errorMessage = create_error_message.Parse_Error(result[1], {
169
- 'position info': ['one based', null]
170
- });
171
- console.error('Parse Error:', errorMessage);
172
- }
173
- ```
174
-
175
- ## ASTN Syntax Overview
176
-
177
- ASTN supports various data types and structures:
178
-
179
- ### JSON Compatibility
180
-
181
- Since ASTN is a superset of JSON, any valid JSON works as-is:
182
-
183
- ```json
184
- {
185
- "name": "John Doe",
186
- "age": 30,
187
- "hobbies": ["reading", "coding"],
188
- "active": true,
189
- "metadata": null
190
- }
191
- ```
192
-
193
- But ASTN extends JSON with additional features for better readability and functionality.
194
-
195
- ## 🆚 JSON vs ASTN Comparison
196
-
197
- Here's the same data structure showing ASTN's enhanced features:
198
-
199
- <table>
200
- <tr>
201
- <th>JSON</th>
202
- <th>ASTN</th>
203
- </tr>
204
- <tr>
205
- <td>
206
-
207
- ```json
208
- {
209
- "config": {
210
- "name": "MyApp",
211
- "version": "1.2.3",
212
- "enabled": true,
213
- "created": "2025-07-21T10:30:00Z",
214
- "tags": ["web", "typescript"],
215
- "databases": {
216
- "local": {
217
- "host": "localhost",
218
- "port": 5432,
219
- "ssl": null
220
- },
221
- "remote": {
222
- "host": "localhost",
223
- "port": 1234,
224
- "ssl": null
225
- },
226
- }
227
- }
228
- }
229
- ```
230
-
231
- </td>
232
- <td>
233
-
234
- ```astn
235
- ! "Application Configuration"
236
- (
237
- 'config': {
238
- 'name': "MyApp"
239
- 'version': "1.2.3"
240
- 'enabled': true
241
- 'created': 2025-07-21 // undelimited date
242
- 'tags': ["web", "typescript"]
243
- 'databases': (
244
- `local`: {
245
- 'host': "localhost"
246
- 'port': | 'number' "5432" // tagged value
247
- 'ssl': ~ // not set
248
- },
249
- `remote": <"localhost" 'number' 1234 ~>
250
- )
251
- }
252
- )
253
- ```
254
-
255
- </td>
256
- </tr>
257
- </table>
258
-
259
- **ASTN advantages shown above:**
260
- - 📄 **Headers** - `! header "..."` for document metadata
261
- - 💬 **Comments** - `//` and `/* */` supported throughout
262
- - 🏷️ **Tagged values** - `| 'number' "5432"` for type information
263
- - ✨ **Flexible literals** - `2025-07-21` without quotes
264
- - 🚫 **Explicit "not set"** - `~` instead of `null`
265
- - **Instance keys** - `` `key` `` for data identifiers
266
- - ✨ **Optional commas** - cleaner syntax without mandatory commas
267
-
268
- ### Schema vs Instance Data Distinction
269
-
270
- One of ASTN's key improvements over JSON is the clear distinction between **schema keys** (fixed structure) and **instance keys** (dynamic data):
271
-
272
- **JSON Problem:** In JSON, it's difficult to distinguish between:
273
- ```json
274
- {
275
- "config": { // Is this a schema key or instance data?
276
- "host": "localhost" // Are these fixed fields or dynamic entries?
277
- }
278
- }
279
- ```
280
-
281
- **ASTN Solution:** Uses different structures for different purposes:
282
-
283
- ```astn
284
- // Verbose Group - for schema/structure ( () and apostrophe keys)
285
- ('config': (
286
- 'host': "localhost" // Fixed schema fields
287
- 'port': 5432
288
- ))
289
-
290
- // Dictionary - for instance/dynamic data ( {} and backtick keys)
291
- {
292
- `user_123`: "John" // Dynamic user IDs
293
- `user_456`: "Jane" // Runtime-determined keys
294
- }
295
- ```
296
-
297
- This makes the data's intent much clearer to both humans and tools!
298
-
299
- ### Lists vs Concise Groups Distinction
300
-
301
- ASTN also distinguishes between **lists** (ordered instance data) and **groups** (ordered schema data):
302
-
303
- **JSON Problem:** Arrays in JSON are ambiguous about their purpose:
304
- ```json
305
- {
306
- "coordinates": [10, 20, 30], // Is this a list or structured data?
307
- "users": ["John", "Jane"] // Dynamic list or fixed schema fields?
308
- }
309
- ```
310
-
311
- **ASTN Solution:** Four different structures for different purposes:
312
-
313
- ```astn
314
- // 1. List - for dynamic/instance data (square brackets)
315
- {
316
- `users`: [ // Dynamic list of users
317
- "John"
318
- "Jane"
319
- "Bob" // Can add/remove items
320
- ]
321
- }
322
-
323
- // 2. Dictionary - for key-value instance data (curly braces + backticks)
324
- {
325
- `user_data`: {
326
- `user_123`: "John" // Dynamic user IDs as keys
327
- `user_456`: "Jane" // Runtime-determined keys
328
- `user_789`: "Bob"
329
- }
330
- }
331
-
332
- // 3. Concise Group - for schema/structure (angle brackets)
333
- {
334
- `coordinates`: <10 20 30> // Fixed x, y, z coordinates
335
- `rgb_color`: <255 128 0> // Fixed red, green, blue values
336
- }
337
-
338
- // 4. Verbose Group - explicit schema names (parentheses)
339
- {
340
- `coordinates`: (
341
- 'x': 10
342
- 'y': 20
343
- 'z': 30
344
- )
345
- }
346
- ```
347
-
348
- **Example: Same data in concise vs verbose groups:**
349
- ```astn
350
- // Concise - implicit positional names
351
- `person`: <"John" 30 "Engineer">
352
-
353
- // Verbose - explicit schema names (equivalent to above)
354
- `person`: (
355
- 'name': "John"
356
- 'age': 30
357
- 'job': "Engineer"
358
- )
359
- ```
360
- schema-aware tooling can create support to toggle between these 2 representations
361
-
362
- **Concise vs Verbose Groups:** These are interchangeable - concise groups are just verbose groups with implicit position-based schema names (first, second, third, etc.).
363
-
364
- ### Document Structure
365
- ```astn
366
- // Optional header
367
- ! header "Document metadata or title"
368
-
369
- // Main document content
370
- {
371
- "content": "value"
372
- }
373
- ```
374
-
375
- ### Basic Values
376
- ```astn
377
- "quoted string" // Can contain newlines and escape sequences
378
- 'apostrophed string' // Used for schema/meta names (keys, state names)
379
- `backticked string` // Used for identifiers
380
- undelimited_string // Flexible literals (dates, numbers, booleans, etc.)
381
- ```
382
-
383
- **String Type Usage:**
384
- - **Quoted strings** (`"..."`) - General purpose strings that support newlines and escape sequences like `\n`, `\t`, `\"`, etc.
385
- - **Apostrophed strings** (`'...'`) - Specifically for schema and metadata names such as verbose group keys and tagged value state names
386
- - **Backticked strings** (`` `...` ``) - Used for identifiers and instance data such as dictionary keys
387
- - **Undelimited strings** - More flexible than JSON primitives; can represent:
388
- - Booleans: `true`, `false`
389
- - Numbers: `42`, `3.14`, `-123`
390
- - Dates: `2025-07-21`, `2025-07-21T10:30:00Z`
391
- - Custom literals: `null`, `undefined`, or domain-specific values
392
-
393
- ### Collections
394
- ```astn
395
- // Dictionary (commas optional, trailing commas allowed)
396
- {
397
- `key`: "value" // backtick for instance data key
398
- `number`: | 'number' "42" // backtick for key, apostrophe for state name
399
- `description`: "Multi-line
400
- strings are supported
401
- in quoted strings"
402
- `date`: 2025-07-21 // undelimited date
403
- `enabled`: true // undelimited boolean
404
- }
405
-
406
- // List with flexible comma usage
407
- [
408
- "item1"
409
- 'schema_name' // apostrophe for schema identifier
410
- `instance_id` // backtick for instance identifier
411
- 2025-07-21 // undelimited date
412
- 42 // undelimited number
413
- ]
414
-
415
- // Concise Group
416
- <"item1" 'meta_name' `instance_id`>
417
-
418
- // Verbose Group (apostrophes for schema keys)
419
- ('schema_key': "value1" 'another_key': "value2")
420
- ```
421
-
422
- ### Special Values
423
- ```astn
424
- // Tagged values (apostrophe for state names)
425
- | 'number' "42"
426
- | 'date' 2025-07-21
427
- | 'boolean' true
428
- | 'custom_type' "some value"
429
-
430
- // Optional values
431
- * "optional value"
432
- * 2025-12-31 // undelimited date as optional
433
-
434
- // Not set
435
- ~
436
-
437
- // File inclusion
438
- @ "path/to/config.astn"
439
- @ "../shared/constants.astn"
440
- ```
441
-
442
- ### Comments
443
- ```astn
444
- // Line comment
445
- /* Block comment */
446
- {
447
- "key": "value" // Trailing comment
448
- }
449
- ```
450
-
451
- ## 🔧 VS Code Extension
452
-
453
- <div align="center">
454
- <img src="https://img.shields.io/badge/VS%20Code-Extension%20Available-blue?style=for-the-badge&logo=visualstudiocode" alt="VS Code Extension"/>
455
- </div>
456
-
457
- For the best development experience with ASTN files, install the **ASTN** VS Code extension:
458
-
459
- - **Extension ID**: `astn`
460
- - **Features**: Syntax highlighting, error detection, and formatting support
461
- - **Installation**: Search for "astn" in the VS Code Extensions marketplace
462
-
463
- ### Extension Features:
464
- - 🎨 **Syntax highlighting** for `.astn` files
465
- - 🔍 **Real-time error detection** and validation
466
- - 📝 **IntelliSense** and autocompletion
467
- - 🔧 **Integrated formatting** support
468
-
469
- ## CLI Usage
470
-
471
- Validate ASTN files:
472
-
473
- ```bash
474
- npx astn-validate < input.astn
475
- ```
476
-
477
- ## API Reference
478
-
479
- ### Types
480
-
481
- - `Document` - Root document structure
482
- - `Value` - Any ASTN value
483
- - `String` - String with type information
484
- - `Parse_Error` - Detailed error information
485
- - `Location` - Position information in source
486
-
487
- ### Functions
488
-
489
- - `Parser.parse(source, options)` - Parse ASTN source
490
- - `format.Document(doc, options)` - Format a document
491
- - `create_error_message.Parse_Error(error, options)` - Create human-readable error messages
492
-
493
- ## 📚 Documentation
494
-
495
- <div align="center">
496
-
497
- | Resource | Description |
498
- |----------|-------------|
499
- | 🚂 [Railroad Diagrams](./documentation/railroad_diagram/index.md) | Visual syntax diagrams |
500
- | 📝 [EBNF Grammar](./extra/astn.ebnf) | Formal grammar specification |
501
- | 📋 [Sample File](./sample_astn_file.astn) | Example ASTN syntax |
502
-
503
- </div>
504
-
505
- ---
506
-
507
- <div align="center">
508
-
509
- ## 🤝 Contributing
510
-
511
- Contributions are welcome! Please feel free to submit a Pull Request.
512
-
513
- ## 📄 License
514
-
515
- Apache 2.0 License - see [LICENSE](LICENSE) file for details.
516
-
517
- ## 📦 Version
518
-
519
- Current version: **0.110.5**
520
-
521
- ---
522
-
523
- <sub>Made with ❤️ for better data formats</sub>
524
-
525
- </div>
@@ -1,2 +0,0 @@
1
- import * as _eb from 'exupery-core-bin';
2
- export declare const $$: _eb.Unguaranteed_Main_Initializer;
@@ -1,38 +0,0 @@
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.$$ = void 0;
27
- const _ea = __importStar(require("exupery-core-alg"));
28
- const _easync = __importStar(require("exupery-core-async"));
29
- const log_error_1 = require("exupery-resources/dist/procedures/log_error");
30
- const $$ = () => _easync.up.action(_easync.upi.u(() => {
31
- return _easync.command.unguaranteed['raise exception'](null);
32
- }, () => ({
33
- 'exit code': 0
34
- }), _easync.eh(log_error_1.$$, ($) => ({
35
- 'lines': _ea.array_literal(["No tests yet"])
36
- }))), _easync.uq.fixed(null));
37
- exports.$$ = $$;
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wcm9jZWR1cmVzL3Rlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzREFBdUM7QUFFdkMsNERBQTZDO0FBRTdDLDJFQUErRTtBQUV4RSxNQUFNLEVBQUUsR0FBc0MsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQ3hFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUNULEdBQUcsRUFBRTtJQUNELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUNoRSxDQUFDLEVBQ0QsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNILFdBQVcsRUFBRSxDQUFDO0NBQ2pCLENBQUMsRUFDRixPQUFPLENBQUMsRUFBRSxDQUNOLGNBQVcsRUFDWCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNKLE9BQU8sRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUM7Q0FDL0MsQ0FBQyxDQUNMLENBQ0osRUFDRCxPQUFPLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FDekIsQ0FBQTtBQWhCWSxRQUFBLEVBQUUsTUFnQmQifQ==
package/dist/test.d.ts DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
package/dist/test.js DELETED
@@ -1,30 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- const _eb = __importStar(require("exupery-core-bin"));
28
- const test_1 = require("./procedures/test");
29
- _eb.run_unguaranteed_main_procedure(test_1.$$);
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsc0RBQXVDO0FBRXZDLDRDQUFzQztBQUV0QyxHQUFHLENBQUMsK0JBQStCLENBQUMsU0FBRSxDQUFDLENBQUEifQ==
@@ -1,425 +0,0 @@
1
- <div style="background-color: white; color: black; padding: 1em;">
2
-
3
- **astn_document:**
4
-
5
- ![astn_document](diagram/astn_document.png)
6
-
7
- ```
8
- astn_document
9
- ::= ( '!' header )? content
10
- ```
11
-
12
- **header:**
13
-
14
- ![header](diagram/header.png)
15
-
16
- ```
17
- header ::= value
18
- ```
19
-
20
- referenced by:
21
-
22
- * astn_document
23
-
24
- **content:**
25
-
26
- ![content](diagram/content.png)
27
-
28
- ```
29
- content ::= value
30
- ```
31
-
32
- referenced by:
33
-
34
- * astn_document
35
-
36
- **value:**
37
-
38
- ![value](diagram/value.png)
39
-
40
- ```
41
- value ::= concise_group
42
- | dictionary
43
- | include
44
- | list
45
- | '~'
46
- | set_optional_value
47
- | string
48
- | tagged_value
49
- | verbose_group
50
- ```
51
-
52
- referenced by:
53
-
54
- * content
55
- * elements
56
- * header
57
- * include
58
- * key_value_pairs
59
- * set_optional_value
60
- * tagged_value
61
-
62
- **concise_group:**
63
-
64
- ![concise_group](diagram/concise_group.png)
65
-
66
- ```
67
- concise_group
68
- ::= '<' elements '>'
69
- ```
70
-
71
- referenced by:
72
-
73
- * value
74
-
75
- **dictionary:**
76
-
77
- ![dictionary](diagram/dictionary.png)
78
-
79
- ```
80
- dictionary
81
- ::= '{' key_value_pairs '}'
82
- ```
83
-
84
- referenced by:
85
-
86
- * value
87
-
88
- **include:**
89
-
90
- ![include](diagram/include.png)
91
-
92
- ```
93
- include ::= '@' value
94
- ```
95
-
96
- referenced by:
97
-
98
- * value
99
-
100
- **list:**
101
-
102
- ![list](diagram/list.png)
103
-
104
- ```
105
- list ::= '[' elements ']'
106
- ```
107
-
108
- referenced by:
109
-
110
- * value
111
-
112
- **set_optional_value:**
113
-
114
- ![set_optional_value](diagram/set_optional_value.png)
115
-
116
- ```
117
- set_optional_value
118
- ::= '*' value
119
- ```
120
-
121
- referenced by:
122
-
123
- * value
124
-
125
- **string:**
126
-
127
- ![string](diagram/string.png)
128
-
129
- ```
130
- string ::= quoted_string
131
- | apostrophed_string
132
- | backticked_string
133
- | undelimited_string
134
- ```
135
-
136
- referenced by:
137
-
138
- * key_value_pairs
139
- * tagged_value
140
- * value
141
-
142
- **tagged_value:**
143
-
144
- ![tagged_value](diagram/tagged_value.png)
145
-
146
- ```
147
- tagged_value
148
- ::= '|' string value
149
- ```
150
-
151
- referenced by:
152
-
153
- * value
154
-
155
- **verbose_group:**
156
-
157
- ![verbose_group](diagram/verbose_group.png)
158
-
159
- ```
160
- verbose_group
161
- ::= '(' key_value_pairs ')'
162
- ```
163
-
164
- referenced by:
165
-
166
- * value
167
-
168
- **elements:**
169
-
170
- ![elements](diagram/elements.png)
171
-
172
- ```
173
- elements ::= ( value ','? )*
174
- ```
175
-
176
- referenced by:
177
-
178
- * concise_group
179
- * list
180
-
181
- **key_value_pairs:**
182
-
183
- ![key_value_pairs](diagram/key_value_pairs.png)
184
-
185
- ```
186
- key_value_pairs
187
- ::= ( string ( ':' value )? ','? )*
188
- ```
189
-
190
- referenced by:
191
-
192
- * dictionary
193
- * verbose_group
194
-
195
- **ignorable:**
196
-
197
- ![ignorable](diagram/ignorable.png)
198
-
199
- ```
200
- ignorable
201
- ::= whitespace
202
- | comment
203
- /* ws: definition */
204
- ```
205
-
206
- **quoted_string:**
207
-
208
- ![quoted_string](diagram/quoted_string.png)
209
-
210
- ```
211
- quoted_string
212
- ::= '"' ( string_content_character - '"' | newline_character )* '"'
213
- ```
214
-
215
- referenced by:
216
-
217
- * string
218
-
219
- **apostrophed_string:**
220
-
221
- ![apostrophed_string](diagram/apostrophed_string.png)
222
-
223
- ```
224
- apostrophed_string
225
- ::= "'" ( string_content_character - "'" )* "'"
226
- ```
227
-
228
- referenced by:
229
-
230
- * string
231
-
232
- **backticked_string:**
233
-
234
- ![backticked_string](diagram/backticked_string.png)
235
-
236
- ```
237
- backticked_string
238
- ::= '`' ( string_content_character - '`' )* '`'
239
- ```
240
-
241
- referenced by:
242
-
243
- * string
244
-
245
- **undelimited_string:**
246
-
247
- ![undelimited_string](diagram/undelimited_string.png)
248
-
249
- ```
250
- undelimited_string
251
- ::= ( normal_character - ( '{' | '}' | '<' | '>' '(' | ')' '[' | ']' | '!' | '*' | ',' | '~' | ':' | '@'
252
- | '|' | "'" | '"' | '`' | '/' | ' ' | '\t' )? )*
253
- ```
254
-
255
- referenced by:
256
-
257
- * string
258
-
259
- **string_content_character:**
260
-
261
- ![string_content_character](diagram/string_content_character.png)
262
-
263
- ```
264
- string_content_character
265
- ::= normal_character
266
- | escaped_character
267
- ```
268
-
269
- referenced by:
270
-
271
- * apostrophed_string
272
- * backticked_string
273
- * quoted_string
274
-
275
- **normal_character:**
276
-
277
- ![normal_character](diagram/normal_character.png)
278
-
279
- ```
280
- normal_character
281
- ::= [#x20-#xD7FF#xE000-#xFFFD#x10000-#x10FFFF]?
282
- ```
283
-
284
- referenced by:
285
-
286
- * line_comment
287
- * normal_or_newline_character
288
- * string_content_character
289
- * undelimited_string
290
-
291
- **escaped_character:**
292
-
293
- ![escaped_character](diagram/escaped_character.png)
294
-
295
- ```
296
- escaped_character
297
- ::= '\"'
298
- | '\`'
299
- | "\'"
300
- | '\\'
301
- | '\/'
302
- | '\b'
303
- | '\f'
304
- | '\n'
305
- | '\r'
306
- | '\t'
307
- | '\u' four_hexadecimal_digits
308
- ```
309
-
310
- referenced by:
311
-
312
- * string_content_character
313
-
314
- **newline_character:**
315
-
316
- ![newline_character](diagram/newline_character.png)
317
-
318
- ```
319
- newline_character
320
- ::= [#xA#xD]
321
- ```
322
-
323
- referenced by:
324
-
325
- * normal_or_newline_character
326
- * quoted_string
327
-
328
- **normal_or_newline_character:**
329
-
330
- ![normal_or_newline_character](diagram/normal_or_newline_character.png)
331
-
332
- ```
333
- normal_or_newline_character
334
- ::= normal_character
335
- | newline_character
336
- ```
337
-
338
- referenced by:
339
-
340
- * traditional_comment
341
-
342
- **comment:**
343
-
344
- ![comment](diagram/comment.png)
345
-
346
- ```
347
- comment ::= traditional_comment
348
- | line_comment
349
- ```
350
-
351
- referenced by:
352
-
353
- * ignorable
354
-
355
- **traditional_comment:**
356
-
357
- ![traditional_comment](diagram/traditional_comment.png)
358
-
359
- ```
360
- traditional_comment
361
- ::= '/*' ( normal_or_newline_character* - ( normal_or_newline_character* '*/' normal_or_newline_character* ) ) '*/'
362
- ```
363
-
364
- referenced by:
365
-
366
- * comment
367
-
368
- **line_comment:**
369
-
370
- ![line_comment](diagram/line_comment.png)
371
-
372
- ```
373
- line_comment
374
- ::= '//' normal_character*
375
- ```
376
-
377
- referenced by:
378
-
379
- * comment
380
-
381
- **four_hexadecimal_digits:**
382
-
383
- ![four_hexadecimal_digits](diagram/four_hexadecimal_digits.png)
384
-
385
- ```
386
- four_hexadecimal_digits
387
- ::= hexadecimal_digit hexadecimal_digit hexadecimal_digit hexadecimal_digit
388
- ```
389
-
390
- referenced by:
391
-
392
- * escaped_character
393
-
394
- **hexadecimal_digit:**
395
-
396
- ![hexadecimal_digit](diagram/hexadecimal_digit.png)
397
-
398
- ```
399
- hexadecimal_digit
400
- ::= [0-9A-Fa-f]
401
- ```
402
-
403
- referenced by:
404
-
405
- * four_hexadecimal_digits
406
-
407
- **whitespace:**
408
-
409
- ![whitespace](diagram/whitespace.png)
410
-
411
- ```
412
- whitespace
413
- ::= [#x9#xA#xD#x20]+
414
- ```
415
-
416
- referenced by:
417
-
418
- * ignorable
419
-
420
- ##
421
- ![rr-2.5](diagram/rr-2.5.png) <sup>generated by [RR - Railroad Diagram Generator][RR]</sup>
422
-
423
- [RR]: https://www.bottlecaps.de/rr/ui
424
-
425
- </div>