agentic-lang 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.
Files changed (146) hide show
  1. package/COMMUNITY.md +220 -0
  2. package/CONTRIBUTING.md +194 -0
  3. package/FINAL_REPORT.md +398 -0
  4. package/FOR_OTHER_LLMS.md +286 -0
  5. package/IMPROVEMENTS.md +319 -0
  6. package/LAUNCH_GUIDE.md +388 -0
  7. package/LICENSE +21 -0
  8. package/NPM_PUBLISH.md +257 -0
  9. package/PROJECT_COMPLETE.md +414 -0
  10. package/PROJECT_OVERVIEW.md +265 -0
  11. package/PROJECT_TREE.txt +228 -0
  12. package/PUBLISHING_GUIDE.md +426 -0
  13. package/PUBLISH_NOW.md +337 -0
  14. package/QUICKSTART.md +207 -0
  15. package/README.md +195 -0
  16. package/README_ENHANCED.md +329 -0
  17. package/READY_TO_LAUNCH.txt +56 -0
  18. package/REFACTOR_PLAN.md +179 -0
  19. package/ROADMAP.md +201 -0
  20. package/SUMMARY.md +315 -0
  21. package/bin/agentic.js +3 -0
  22. package/blog/001-introducing-agentic.md +382 -0
  23. package/blog/002-confidence-driven-development.md +490 -0
  24. package/blog/003-formal-verification.md +427 -0
  25. package/blog/004-multi-agent-production.md +436 -0
  26. package/dist/cli.d.ts +7 -0
  27. package/dist/cli.d.ts.map +1 -0
  28. package/dist/cli.js +151 -0
  29. package/dist/cli.js.map +1 -0
  30. package/dist/diagnostics/diagnostic.d.ts +115 -0
  31. package/dist/diagnostics/diagnostic.d.ts.map +1 -0
  32. package/dist/diagnostics/diagnostic.js +101 -0
  33. package/dist/diagnostics/diagnostic.js.map +1 -0
  34. package/dist/diagnostics/formatter.d.ts +36 -0
  35. package/dist/diagnostics/formatter.d.ts.map +1 -0
  36. package/dist/diagnostics/formatter.js +263 -0
  37. package/dist/diagnostics/formatter.js.map +1 -0
  38. package/dist/effects/effect-system.d.ts +64 -0
  39. package/dist/effects/effect-system.d.ts.map +1 -0
  40. package/dist/effects/effect-system.js +197 -0
  41. package/dist/effects/effect-system.js.map +1 -0
  42. package/dist/generator/typescript-generator.d.ts +31 -0
  43. package/dist/generator/typescript-generator.d.ts.map +1 -0
  44. package/dist/generator/typescript-generator.js +308 -0
  45. package/dist/generator/typescript-generator.js.map +1 -0
  46. package/dist/index.d.ts +19 -0
  47. package/dist/index.d.ts.map +1 -0
  48. package/dist/index.js +60 -0
  49. package/dist/index.js.map +1 -0
  50. package/dist/lean4/exporter.d.ts +24 -0
  51. package/dist/lean4/exporter.d.ts.map +1 -0
  52. package/dist/lean4/exporter.js +142 -0
  53. package/dist/lean4/exporter.js.map +1 -0
  54. package/dist/lsp/server.d.ts +6 -0
  55. package/dist/lsp/server.d.ts.map +1 -0
  56. package/dist/lsp/server.js +131 -0
  57. package/dist/lsp/server.js.map +1 -0
  58. package/dist/parser/lexer.d.ts +79 -0
  59. package/dist/parser/lexer.d.ts.map +1 -0
  60. package/dist/parser/lexer.js +296 -0
  61. package/dist/parser/lexer.js.map +1 -0
  62. package/dist/parser/parser-enhanced.d.ts +12 -0
  63. package/dist/parser/parser-enhanced.d.ts.map +1 -0
  64. package/dist/parser/parser-enhanced.js +206 -0
  65. package/dist/parser/parser-enhanced.js.map +1 -0
  66. package/dist/parser/parser.d.ts +34 -0
  67. package/dist/parser/parser.d.ts.map +1 -0
  68. package/dist/parser/parser.js +507 -0
  69. package/dist/parser/parser.js.map +1 -0
  70. package/dist/property-tests/generator-enhanced.d.ts +27 -0
  71. package/dist/property-tests/generator-enhanced.d.ts.map +1 -0
  72. package/dist/property-tests/generator-enhanced.js +209 -0
  73. package/dist/property-tests/generator-enhanced.js.map +1 -0
  74. package/dist/property-tests/generator-fixed.d.ts +2 -0
  75. package/dist/property-tests/generator-fixed.d.ts.map +1 -0
  76. package/dist/property-tests/generator-fixed.js +7 -0
  77. package/dist/property-tests/generator-fixed.js.map +1 -0
  78. package/dist/property-tests/generator.d.ts +28 -0
  79. package/dist/property-tests/generator.d.ts.map +1 -0
  80. package/dist/property-tests/generator.js +284 -0
  81. package/dist/property-tests/generator.js.map +1 -0
  82. package/dist/refinements/refinement-types.d.ts +96 -0
  83. package/dist/refinements/refinement-types.d.ts.map +1 -0
  84. package/dist/refinements/refinement-types.js +234 -0
  85. package/dist/refinements/refinement-types.js.map +1 -0
  86. package/dist/repl.d.ts +21 -0
  87. package/dist/repl.d.ts.map +1 -0
  88. package/dist/repl.js +317 -0
  89. package/dist/repl.js.map +1 -0
  90. package/dist/runtime/agents.d.ts +97 -0
  91. package/dist/runtime/agents.d.ts.map +1 -0
  92. package/dist/runtime/agents.js +258 -0
  93. package/dist/runtime/agents.js.map +1 -0
  94. package/dist/runtime/index.d.ts +98 -0
  95. package/dist/runtime/index.d.ts.map +1 -0
  96. package/dist/runtime/index.js +253 -0
  97. package/dist/runtime/index.js.map +1 -0
  98. package/dist/types-extended.d.ts +197 -0
  99. package/dist/types-extended.d.ts.map +1 -0
  100. package/dist/types-extended.js +7 -0
  101. package/dist/types-extended.js.map +1 -0
  102. package/dist/types.d.ts +129 -0
  103. package/dist/types.d.ts.map +1 -0
  104. package/dist/types.js +6 -0
  105. package/dist/types.js.map +1 -0
  106. package/dist/verification/z3-engine.d.ts +75 -0
  107. package/dist/verification/z3-engine.d.ts.map +1 -0
  108. package/dist/verification/z3-engine.js +234 -0
  109. package/dist/verification/z3-engine.js.map +1 -0
  110. package/examples/advanced-features.agentic +98 -0
  111. package/examples/annotations.agentic +37 -0
  112. package/examples/auth.agentic +53 -0
  113. package/examples/enterprise-example.agentic +360 -0
  114. package/examples/minimal.agentic +3 -0
  115. package/examples/minimal.ts +7 -0
  116. package/examples/ml-pipeline.agentic +350 -0
  117. package/examples/multi-agent-example.agentic +212 -0
  118. package/examples/onboarding-tutorial.agentic +263 -0
  119. package/examples/production-api.agentic +304 -0
  120. package/examples/real-world-chatbot.agentic +351 -0
  121. package/examples/result-handling.agentic +34 -0
  122. package/examples/runtime.ts +24 -0
  123. package/examples/showcase.agentic +22 -0
  124. package/examples/showcase.ts +28 -0
  125. package/examples/simple-test.agentic +4 -0
  126. package/examples/simple-test.ts +7 -0
  127. package/examples/simple.agentic +20 -0
  128. package/examples/test2.agentic +4 -0
  129. package/examples/test2.ts +9 -0
  130. package/examples/test3.agentic +4 -0
  131. package/examples/test3.ts +9 -0
  132. package/package.json +70 -0
  133. package/playground/index.html +221 -0
  134. package/playground/playground.js +291 -0
  135. package/registry/package-registry.ts +319 -0
  136. package/scripts/build.js +50 -0
  137. package/scripts/validate-confidence-mutation.ts +112 -0
  138. package/stdlib/async/promise.agentic +216 -0
  139. package/stdlib/database/pool.agentic +235 -0
  140. package/stdlib/file/io.agentic +194 -0
  141. package/stdlib/http/client.agentic +168 -0
  142. package/video-scripts/001-agentic-in-100-seconds.md +175 -0
  143. package/vscode-extension/README.md +67 -0
  144. package/vscode-extension/language-configuration.json +31 -0
  145. package/vscode-extension/package.json +46 -0
  146. package/vscode-extension/syntaxes/agentic.tmLanguage.json +134 -0
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Lean4 Theorem Prover Export
3
+ * Converts Agentic functions to Lean4 for formal verification
4
+ */
5
+ import * as AST from '../types';
6
+ export interface Lean4Export {
7
+ definitions: string[];
8
+ theorems: string[];
9
+ proofs: string[];
10
+ }
11
+ export declare class Lean4Exporter {
12
+ export(ast: AST.ASTNode[]): Lean4Export;
13
+ private exportFunction;
14
+ private exportTheorem;
15
+ private contractToProposition;
16
+ private generateLean4Params;
17
+ private generateLean4Type;
18
+ private translateToLean4Logic;
19
+ /**
20
+ * Generate complete Lean4 file with all necessary imports
21
+ */
22
+ generateLean4File(ast: AST.ASTNode[], moduleName: string): string;
23
+ }
24
+ //# sourceMappingURL=exporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exporter.d.ts","sourceRoot":"","sources":["../../src/lean4/exporter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAEhC,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,aAAa;IACxB,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,WAAW;IAyBvC,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,qBAAqB;IA4B7B,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,qBAAqB;IAa7B;;OAEG;IACH,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;CAyBlE"}
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ /**
3
+ * Lean4 Theorem Prover Export
4
+ * Converts Agentic functions to Lean4 for formal verification
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.Lean4Exporter = void 0;
8
+ class Lean4Exporter {
9
+ export(ast) {
10
+ const definitions = [];
11
+ const theorems = [];
12
+ const proofs = [];
13
+ for (const node of ast) {
14
+ if (node.type === 'FunctionDeclaration') {
15
+ const func = node;
16
+ // Only export @complete functions
17
+ if (func.annotations.some(a => a.name === 'complete')) {
18
+ definitions.push(this.exportFunction(func));
19
+ // Generate theorem from contracts
20
+ const contractAnnotation = func.annotations.find(a => a.name === 'contract');
21
+ if (contractAnnotation) {
22
+ theorems.push(this.exportTheorem(func, contractAnnotation));
23
+ }
24
+ }
25
+ }
26
+ }
27
+ return { definitions, theorems, proofs };
28
+ }
29
+ exportFunction(func) {
30
+ const params = this.generateLean4Params(func.params);
31
+ const returnType = this.generateLean4Type(func.returnType);
32
+ return `
33
+ def ${func.name} ${params} : ${returnType} :=
34
+ sorry -- Implementation or proof goes here
35
+
36
+ `;
37
+ }
38
+ exportTheorem(func, contractAnnotation) {
39
+ const params = this.generateLean4Params(func.params);
40
+ const proposition = this.contractToProposition(func, contractAnnotation);
41
+ return `
42
+ theorem ${func.name}_correct ${params} :
43
+ ${proposition} := by
44
+ sorry -- Proof obligation
45
+
46
+ `;
47
+ }
48
+ contractToProposition(func, contract) {
49
+ const requires = contract.args.requires || [];
50
+ const ensures = contract.args.ensures || [];
51
+ const preconditions = Array.isArray(requires)
52
+ ? requires.map(r => this.translateToLean4Logic(r))
53
+ : [];
54
+ const postconditions = Array.isArray(ensures)
55
+ ? ensures.map(e => this.translateToLean4Logic(e))
56
+ : [];
57
+ // Build proposition: ∀ params, precondition → postcondition
58
+ const paramNames = func.params.map(p => p.name).join(' ');
59
+ if (preconditions.length === 0) {
60
+ return postconditions.join(' ∧ ');
61
+ }
62
+ const preCondition = preconditions.join(' ∧ ');
63
+ const postCondition = postconditions.join(' ∧ ');
64
+ return `${preCondition} → ${postCondition}`;
65
+ }
66
+ generateLean4Params(params) {
67
+ return ('(' +
68
+ params
69
+ .map(p => {
70
+ const type = this.generateLean4Type(p.typeAnnotation);
71
+ return `${p.name} : ${type}`;
72
+ })
73
+ .join(') (') +
74
+ ')');
75
+ }
76
+ generateLean4Type(typeAnnotation) {
77
+ if (!typeAnnotation) {
78
+ return 'Unit'; // void in Lean4
79
+ }
80
+ switch (typeAnnotation.kind) {
81
+ case 'primitive':
82
+ if (typeAnnotation.value === 'number')
83
+ return 'ℝ'; // Real numbers
84
+ if (typeAnnotation.value === 'string')
85
+ return 'String';
86
+ if (typeAnnotation.value === 'boolean')
87
+ return 'Bool';
88
+ if (typeAnnotation.value === 'void')
89
+ return 'Unit';
90
+ return 'α'; // Generic type
91
+ case 'result':
92
+ // Result<T, E> -> Except E T in Lean4
93
+ if (Array.isArray(typeAnnotation.value) && typeAnnotation.value.length >= 2) {
94
+ const okType = this.generateLean4Type(typeAnnotation.value[0]);
95
+ const errType = this.generateLean4Type(typeAnnotation.value[1]);
96
+ return `Except ${errType} ${okType}`;
97
+ }
98
+ return 'Except String α';
99
+ default:
100
+ return 'α'; // Generic fallback
101
+ }
102
+ }
103
+ translateToLean4Logic(expression) {
104
+ // Translate common mathematical expressions to Lean4 syntax
105
+ return expression
106
+ .replace(/&&/g, '∧')
107
+ .replace(/\|\|/g, '∨')
108
+ .replace(/!=/g, '≠')
109
+ .replace(/>=/g, '≥')
110
+ .replace(/<=/g, '≤')
111
+ .replace(/==/g, '=')
112
+ .replace(/!/g, '¬');
113
+ }
114
+ /**
115
+ * Generate complete Lean4 file with all necessary imports
116
+ */
117
+ generateLean4File(ast, moduleName) {
118
+ const exported = this.export(ast);
119
+ let lean4Code = `-- Auto-generated from Agentic
120
+ -- Module: ${moduleName}
121
+
122
+ import Mathlib.Data.Real.Basic
123
+ import Mathlib.Logic.Basic
124
+
125
+ `;
126
+ // Add definitions
127
+ if (exported.definitions.length > 0) {
128
+ lean4Code += '-- Function Definitions\n';
129
+ lean4Code += exported.definitions.join('\n');
130
+ }
131
+ // Add theorems
132
+ if (exported.theorems.length > 0) {
133
+ lean4Code += '\n-- Theorems\n';
134
+ lean4Code += exported.theorems.join('\n');
135
+ }
136
+ return lean4Code;
137
+ }
138
+ }
139
+ exports.Lean4Exporter = Lean4Exporter;
140
+ // Example usage in CLI:
141
+ // agentic export --target lean4 myfile.agentic --output myfile.lean
142
+ //# sourceMappingURL=exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exporter.js","sourceRoot":"","sources":["../../src/lean4/exporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Agentic Language Server Protocol Implementation
3
+ * Based on rust-analyzer and TypeScript Language Server architecture
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/lsp/server.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ /**
3
+ * Agentic Language Server Protocol Implementation
4
+ * Based on rust-analyzer and TypeScript Language Server architecture
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const node_1 = require("vscode-languageserver/node");
8
+ const vscode_languageserver_textdocument_1 = require("vscode-languageserver-textdocument");
9
+ // Create LSP connection
10
+ const connection = (0, node_1.createConnection)(node_1.ProposedFeatures.all);
11
+ // Document manager
12
+ const documents = new node_1.TextDocuments(vscode_languageserver_textdocument_1.TextDocument);
13
+ // Server state
14
+ let hasConfigurationCapability = false;
15
+ let hasWorkspaceFolderCapability = false;
16
+ connection.onInitialize((params) => {
17
+ const capabilities = params.capabilities;
18
+ hasConfigurationCapability = !!(capabilities.workspace && !!capabilities.workspace.configuration);
19
+ hasWorkspaceFolderCapability = !!(capabilities.workspace && !!capabilities.workspace.workspaceFolders);
20
+ return {
21
+ capabilities: {
22
+ textDocumentSync: node_1.TextDocumentSyncKind.Incremental,
23
+ completionProvider: {
24
+ resolveProvider: true,
25
+ triggerCharacters: ['@', '.', ':'],
26
+ },
27
+ hoverProvider: true,
28
+ definitionProvider: true,
29
+ referencesProvider: true,
30
+ documentSymbolProvider: true,
31
+ workspaceSymbolProvider: true,
32
+ semanticTokensProvider: {
33
+ legend: {
34
+ tokenTypes: [
35
+ 'function',
36
+ 'parameter',
37
+ 'variable',
38
+ 'type',
39
+ 'annotation',
40
+ 'confidenceLow',
41
+ 'confidenceHigh',
42
+ 'stageStub',
43
+ 'stagePartial',
44
+ 'stageComplete',
45
+ ],
46
+ tokenModifiers: ['declaration', 'readonly', 'deprecated', 'uncertain'],
47
+ },
48
+ full: true,
49
+ },
50
+ },
51
+ };
52
+ });
53
+ connection.onInitialized(() => {
54
+ if (hasConfigurationCapability) {
55
+ // Register for configuration changes
56
+ // connection.client.register('workspace/didChangeConfiguration');
57
+ }
58
+ if (hasWorkspaceFolderCapability) {
59
+ connection.workspace.onDidChangeWorkspaceFolders(() => {
60
+ connection.console.log('Workspace folder change event received.');
61
+ });
62
+ }
63
+ });
64
+ // Document change handler
65
+ documents.onDidChangeContent(change => {
66
+ validateDocument(change.document);
67
+ });
68
+ // Validation function
69
+ async function validateDocument(textDocument) {
70
+ const text = textDocument.getText();
71
+ const diagnostics = [];
72
+ try {
73
+ // Parse the document
74
+ // const { ast, diagnostics: agenticDiags } = parse(text);
75
+ // Convert Agentic diagnostics to LSP diagnostics
76
+ // diagnostics.push(...convertDiagnostics(agenticDiags));
77
+ }
78
+ catch (error) {
79
+ // Handle parse errors
80
+ connection.console.error(`Parse error: ${error}`);
81
+ }
82
+ // Send diagnostics to client
83
+ connection.sendDiagnostics({ uri: textDocument.uri, diagnostics });
84
+ }
85
+ // Completion provider
86
+ connection.onCompletion((textDocumentPosition) => {
87
+ // Return Agentic-specific completions
88
+ return [
89
+ {
90
+ label: '@confidence',
91
+ kind: node_1.CompletionItemKind.Keyword,
92
+ insertText: '@confidence(${1:0.90})',
93
+ detail: 'Declare confidence level (0.0 - 1.0)',
94
+ documentation: 'Add a confidence annotation to track uncertainty',
95
+ },
96
+ {
97
+ label: '@needs',
98
+ kind: node_1.CompletionItemKind.Keyword,
99
+ insertText: '@needs(${1:dependency})',
100
+ detail: 'Declare required context',
101
+ documentation: 'Specify dependencies required by this function',
102
+ },
103
+ {
104
+ label: '@stub',
105
+ kind: node_1.CompletionItemKind.Keyword,
106
+ detail: 'Mark function as stub (not implemented)',
107
+ },
108
+ {
109
+ label: '@partial',
110
+ kind: node_1.CompletionItemKind.Keyword,
111
+ detail: 'Mark function as partially implemented',
112
+ },
113
+ {
114
+ label: '@complete',
115
+ kind: node_1.CompletionItemKind.Keyword,
116
+ detail: 'Mark function as fully implemented',
117
+ },
118
+ {
119
+ label: 'Result',
120
+ kind: node_1.CompletionItemKind.TypeParameter,
121
+ insertText: 'Result<${1:T}, ${2:E}>',
122
+ detail: 'Result type for error handling',
123
+ },
124
+ ];
125
+ });
126
+ // Make the text document manager listen on the connection
127
+ documents.listen(connection);
128
+ // Listen on the connection
129
+ connection.listen();
130
+ console.log('Agentic Language Server started');
131
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/lsp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Simple regex-based lexer for Agentic language
3
+ * For MVP - full Tree-sitter parser can be added later
4
+ */
5
+ export declare enum TokenType {
6
+ FUNC = "FUNC",
7
+ RETURN = "RETURN",
8
+ IF = "IF",
9
+ ELSE = "ELSE",
10
+ MATCH = "MATCH",
11
+ OR = "OR",
12
+ ERROR = "ERROR",
13
+ NUMBER = "NUMBER",
14
+ STRING = "STRING",
15
+ BOOLEAN = "BOOLEAN",
16
+ NULL = "NULL",
17
+ IDENTIFIER = "IDENTIFIER",
18
+ ARROW = "ARROW",// ->
19
+ FAT_ARROW = "FAT_ARROW",// =>
20
+ PIPE = "PIPE",// |
21
+ DOT = "DOT",
22
+ COMMA = "COMMA",
23
+ COLON = "COLON",
24
+ SEMICOLON = "SEMICOLON",
25
+ PLUS = "PLUS",// +
26
+ MINUS = "MINUS",// -
27
+ STAR = "STAR",// *
28
+ SLASH = "SLASH",// /
29
+ PERCENT = "PERCENT",// %
30
+ EQ = "EQ",// ==
31
+ NEQ = "NEQ",// !=
32
+ LT = "LT",
33
+ GT = "GT",
34
+ LTE = "LTE",
35
+ GTE = "GTE",
36
+ LPAREN = "LPAREN",
37
+ RPAREN = "RPAREN",
38
+ LBRACE = "LBRACE",
39
+ RBRACE = "RBRACE",
40
+ LBRACKET = "LBRACKET",
41
+ RBRACKET = "RBRACKET",
42
+ AT = "AT",// @
43
+ NEWLINE = "NEWLINE",
44
+ EOF = "EOF",
45
+ UNKNOWN = "UNKNOWN"
46
+ }
47
+ export interface Token {
48
+ type: TokenType;
49
+ value: string;
50
+ line: number;
51
+ column: number;
52
+ offset: number;
53
+ }
54
+ export declare class Lexer {
55
+ private source;
56
+ private pos;
57
+ private line;
58
+ private column;
59
+ private tokens;
60
+ constructor(source: string);
61
+ tokenize(): Token[];
62
+ private nextToken;
63
+ private scanAnnotation;
64
+ private scanString;
65
+ private scanNumber;
66
+ private scanIdentifier;
67
+ private scanOperator;
68
+ private skipWhitespace;
69
+ private skipLineComment;
70
+ private skipBlockComment;
71
+ private peek;
72
+ private advance;
73
+ private isAtEnd;
74
+ private isDigit;
75
+ private isAlpha;
76
+ private isAlphaNumeric;
77
+ private createToken;
78
+ }
79
+ //# sourceMappingURL=lexer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lexer.d.ts","sourceRoot":"","sources":["../../src/parser/lexer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oBAAY,SAAS;IAEnB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,EAAE,OAAO;IACT,IAAI,SAAS;IACb,KAAK,UAAU;IACf,EAAE,OAAO;IACT,KAAK,UAAU;IAGf,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,IAAI,SAAS;IAGb,UAAU,eAAe;IAGzB,KAAK,UAAU,CAAE,KAAK;IACtB,SAAS,cAAc,CAAE,KAAK;IAC9B,IAAI,SAAS,CAAE,IAAI;IACnB,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,KAAK,UAAU;IACf,SAAS,cAAc;IACvB,IAAI,SAAS,CAAE,IAAI;IACnB,KAAK,UAAU,CAAE,IAAI;IACrB,IAAI,SAAS,CAAE,IAAI;IACnB,KAAK,UAAU,CAAE,IAAI;IACrB,OAAO,YAAY,CAAE,IAAI;IAGzB,EAAE,OAAO,CAAE,KAAK;IAChB,GAAG,QAAQ,CAAE,KAAK;IAClB,EAAE,OAAO;IACT,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,GAAG,QAAQ;IAGX,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IAGrB,EAAE,OAAO,CAAE,IAAI;IAGf,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,OAAO,YAAY;CACpB;AAED,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAeD,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAAK;IAChB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,MAAM;IAI1B,QAAQ,IAAI,KAAK,EAAE;IA6BnB,OAAO,CAAC,SAAS;IA2BjB,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,YAAY;IA2EpB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,IAAI;IAKZ,OAAO,CAAC,OAAO;IAWf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,cAAc;IAItB,OAAO,CAAC,WAAW;CASpB"}