cariboujs 2.0.3 → 2.0.5

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 (82) hide show
  1. package/README.md +330 -324
  2. package/ada/ada2012/AdaLexer.js +486 -316
  3. package/ada/ada2012/AdaLexerBase.js +25 -0
  4. package/ada/ada2012/AdaParser.js +4547 -3823
  5. package/ada/ada2012/AdaParserBase.js +682 -0
  6. package/ada/ada2012/AdaParserListener.js +36 -0
  7. package/ada/ada2012/AdaParserVisitor.js +24 -0
  8. package/ada/ada2012/Symbol.js +20 -0
  9. package/ada/ada2012/SymbolTable.js +144 -0
  10. package/ada/ada2012/TypeClassification.js +15 -0
  11. package/ada/ada2022/AdaLexer.js +699 -0
  12. package/ada/ada2022/AdaLexerBase.js +25 -0
  13. package/ada/ada2022/AdaParser.js +37818 -0
  14. package/ada/ada2022/AdaParserBase.js +686 -0
  15. package/ada/ada2022/AdaParserListener.js +3024 -0
  16. package/ada/ada2022/AdaParserVisitor.js +2020 -0
  17. package/ada/ada2022/Symbol.js +20 -0
  18. package/ada/ada2022/SymbolTable.js +144 -0
  19. package/ada/ada2022/TypeClassification.js +15 -0
  20. package/c/CLexer.js +846 -603
  21. package/c/CLexerBase.js +96 -0
  22. package/c/CParser.js +8798 -4776
  23. package/c/CParserBase.js +591 -0
  24. package/c/{CListener.js → CParserListener.js} +382 -112
  25. package/c/{CVisitor.js → CParserVisitor.js} +252 -72
  26. package/c/ErrorListener.js +50 -0
  27. package/c/Symbol.js +28 -0
  28. package/c/SymbolTable.js +215 -0
  29. package/c/TypeClassification.js +21 -0
  30. package/cpp/CPP14Parser.js +215 -215
  31. package/cpp/CPP14ParserListener.js +56 -56
  32. package/cpp/CPP14ParserVisitor.js +28 -28
  33. package/cql3/CqlLexer.js +708 -692
  34. package/cql3/CqlParser.js +3356 -2802
  35. package/cql3/CqlParserListener.js +36 -0
  36. package/cql3/CqlParserVisitor.js +24 -0
  37. package/csharp/v7/CSharpLexer.js +1339 -0
  38. package/csharp/v7/CSharpLexerBase.js +332 -0
  39. package/csharp/v7/CSharpParser.js +29239 -0
  40. package/csharp/v7/CSharpParserBase.js +48 -0
  41. package/csharp/v7/CSharpParserListener.js +2304 -0
  42. package/csharp/v7/CSharpParserVisitor.js +1540 -0
  43. package/csharp/v8-spec/CSharpLexer.js +1549 -0
  44. package/csharp/v8-spec/CSharpLexerBase.js +296 -0
  45. package/csharp/v8-spec/CSharpParser.js +45044 -0
  46. package/csharp/v8-spec/CSharpParserBase.js +569 -0
  47. package/csharp/v8-spec/CSharpParserListener.js +3582 -0
  48. package/csharp/v8-spec/CSharpParserVisitor.js +2392 -0
  49. package/geekcode/geekcodeLexer.js +232 -0
  50. package/geekcode/geekcodeListener.js +81 -0
  51. package/geekcode/geekcodeParser.js +1516 -0
  52. package/geekcode/geekcodeVisitor.js +58 -0
  53. package/kotlin/kotlin/KotlinLexer.js +1257 -1247
  54. package/kotlin/kotlin/KotlinParser.js +3991 -3425
  55. package/kotlin/kotlin/KotlinParserListener.js +36 -0
  56. package/kotlin/kotlin/KotlinParserVisitor.js +24 -0
  57. package/package.json +1 -1
  58. package/plantUML/PlantUMLLexer.js +215 -316
  59. package/plantUML/PlantUMLParser.js +1045 -2393
  60. package/plantUML/PlantUMLParserListener.js +171 -0
  61. package/plantUML/PlantUMLParserVisitor.js +118 -0
  62. package/sql/cockroachdb/CockroachDBLexer.js +3865 -0
  63. package/sql/cockroachdb/CockroachDBParser.js +123259 -0
  64. package/sql/cockroachdb/CockroachDBParserListener.js +7281 -0
  65. package/sql/cockroachdb/CockroachDBParserVisitor.js +4858 -0
  66. package/sql/plsql/PlSqlParser.js +27187 -42911
  67. package/sql/plsql/PlSqlParserBase.js +30 -0
  68. package/sql/plsql/PlSqlParserListener.js +0 -9
  69. package/sql/plsql/PlSqlParserVisitor.js +0 -6
  70. package/sql/snowflake/SnowflakeLexer.js +5675 -5497
  71. package/sql/snowflake/SnowflakeParser.js +27230 -22653
  72. package/sql/snowflake/SnowflakeParserListener.js +278 -8
  73. package/sql/snowflake/SnowflakeParserVisitor.js +184 -4
  74. package/sql/sqlite/SQLiteParser.js +1115 -1115
  75. package/sql/sqlite/SQLiteParserListener.js +9 -9
  76. package/sql/sqlite/SQLiteParserVisitor.js +6 -6
  77. package/sysml-v2/SysMLv2Lexer.js +1047 -0
  78. package/sysml-v2/SysMLv2Parser.js +51339 -0
  79. package/sysml-v2/SysMLv2ParserListener.js +4464 -0
  80. package/sysml-v2/SysMLv2ParserVisitor.js +2980 -0
  81. package/plantUML/PlantUMLListener.js +0 -279
  82. package/plantUML/PlantUMLVisitor.js +0 -190
@@ -0,0 +1,20 @@
1
+ export default class Symbol {
2
+ constructor() {
3
+ this.name = "";
4
+ this.classification = new Set();
5
+ this.members = new Map();
6
+ this.parent = null;
7
+ this.predefined = false;
8
+ this.isComposite = false;
9
+ this.definedFile = "";
10
+ this.definedLine = 0;
11
+ this.definedColumn = 0;
12
+ }
13
+ toString() {
14
+ let result = this.name;
15
+ result += " (with classification " + Array.from(this.classification).join(", ") + ")";
16
+ if (this.isComposite) result += " [composite]";
17
+ if (this.definedFile) result += " defined at " + this.definedFile + ":" + this.definedLine + ":" + this.definedColumn;
18
+ return result;
19
+ }
20
+ }
@@ -0,0 +1,144 @@
1
+ import Symbol from './Symbol.js';
2
+ import TypeClassification from './TypeClassification.js';
3
+
4
+ export default class SymbolTable {
5
+ constructor() {
6
+ this.scopeStack = [];
7
+ this.blockCounter = 0;
8
+
9
+ var globalScope = new Symbol();
10
+ globalScope.name = "global";
11
+ globalScope.classification = new Set([TypeClassification.Global_]);
12
+ this.scopeStack.push(globalScope);
13
+
14
+ // Predefined scalar types
15
+ this._defineType("integer", false);
16
+ this._defineType("natural", false);
17
+ this._defineType("positive", false);
18
+ this._defineType("float", false);
19
+ this._defineType("long_float", false);
20
+ this._defineType("character", false);
21
+ this._defineType("wide_character", false);
22
+ this._defineType("wide_wide_character", false);
23
+ this._defineType("boolean", false);
24
+ this._defineType("duration", false);
25
+
26
+ // Predefined composite types
27
+ this._defineType("string", true);
28
+ this._defineType("wide_string", true);
29
+ this._defineType("wide_wide_string", true);
30
+
31
+ // Predefined exceptions
32
+ this._definePredefined("constraint_error", TypeClassification.ExceptionName_);
33
+ this._definePredefined("program_error", TypeClassification.ExceptionName_);
34
+ this._definePredefined("storage_error", TypeClassification.ExceptionName_);
35
+ this._definePredefined("tasking_error", TypeClassification.ExceptionName_);
36
+ this._definePredefined("numeric_error", TypeClassification.ExceptionName_);
37
+
38
+ // Predefined enumeration literals
39
+ this._definePredefined("true", TypeClassification.EnumerationLiteral_);
40
+ this._definePredefined("false", TypeClassification.EnumerationLiteral_);
41
+ }
42
+
43
+ _defineType(name, isComposite) {
44
+ var sym = new Symbol();
45
+ sym.name = name;
46
+ sym.classification = new Set([TypeClassification.TypeName_]);
47
+ sym.predefined = true;
48
+ sym.isComposite = isComposite;
49
+ this.define(sym);
50
+ }
51
+
52
+ _definePredefined(name, classification) {
53
+ var sym = new Symbol();
54
+ sym.name = name;
55
+ sym.classification = new Set([classification]);
56
+ sym.predefined = true;
57
+ this.define(sym);
58
+ }
59
+
60
+ currentScope() {
61
+ if (this.scopeStack.length === 0) return null;
62
+ return this.scopeStack[this.scopeStack.length - 1];
63
+ }
64
+
65
+ define(symbol) {
66
+ var currentScope = this.currentScope();
67
+ if (currentScope === null) return false;
68
+ // Case-insensitive: normalize name to lowercase
69
+ symbol.name = symbol.name.toLowerCase();
70
+ if (currentScope.members.has(symbol.name)) {
71
+ return false;
72
+ }
73
+ symbol.parent = currentScope;
74
+ currentScope.members.set(symbol.name, symbol);
75
+ return true;
76
+ }
77
+
78
+ resolve(name) {
79
+ // Case-insensitive: normalize to lowercase
80
+ name = name.toLowerCase();
81
+ for (var i = this.scopeStack.length - 1; i >= 0; i--) {
82
+ var scope = this.scopeStack[i];
83
+ if (scope.members.has(name)) {
84
+ return scope.members.get(name);
85
+ }
86
+ }
87
+ return null;
88
+ }
89
+
90
+ pushBlockScope() {
91
+ var blockScope = new Symbol();
92
+ blockScope.name = "block" + (++this.blockCounter);
93
+ blockScope.classification = new Set([TypeClassification.Block_]);
94
+ blockScope.predefined = true;
95
+ var current = this.currentScope();
96
+ if (current !== null && blockScope !== current) {
97
+ this.scopeStack.push(blockScope);
98
+ }
99
+ return blockScope;
100
+ }
101
+
102
+ popBlockScope() {
103
+ if (this.scopeStack.length <= 1) {
104
+ throw new Error("SymbolTable: scope stack underflow");
105
+ }
106
+ this.scopeStack.pop();
107
+ }
108
+
109
+ getExportedSymbols() {
110
+ var result = [];
111
+ if (this.scopeStack.length === 0) return result;
112
+ var global = this.scopeStack[0]; // bottom of stack = global scope
113
+ for (var [key, sym] of global.members) {
114
+ if (!sym.predefined) {
115
+ result.push(sym);
116
+ }
117
+ }
118
+ return result;
119
+ }
120
+
121
+ toString() {
122
+ var result = "";
123
+ if (this.scopeStack.length > 0) {
124
+ result = this._toStringHelper(this.scopeStack[0], 0);
125
+ }
126
+ return result;
127
+ }
128
+
129
+ _toStringHelper(scope, depth) {
130
+ var result = "";
131
+ var indent = " ".repeat(depth);
132
+ for (var [key, sym] of scope.members) {
133
+ if (!sym.predefined) {
134
+ result += indent + sym.toString() + "\n";
135
+ }
136
+ if (sym.classification.has(TypeClassification.Block_) ||
137
+ sym.classification.has(TypeClassification.SubprogramName_) ||
138
+ sym.classification.has(TypeClassification.PackageName_)) {
139
+ result += this._toStringHelper(sym, depth + 1);
140
+ }
141
+ }
142
+ return result;
143
+ }
144
+ }
@@ -0,0 +1,15 @@
1
+ const TypeClassification = Object.freeze({
2
+ Global_: 'Global_',
3
+ Block_: 'Block_',
4
+ TypeName_: 'TypeName_',
5
+ ObjectName_: 'ObjectName_',
6
+ SubprogramName_: 'SubprogramName_',
7
+ PackageName_: 'PackageName_',
8
+ ExceptionName_: 'ExceptionName_',
9
+ GenericName_: 'GenericName_',
10
+ EnumerationLiteral_: 'EnumerationLiteral_',
11
+ ComponentName_: 'ComponentName_',
12
+ LabelName_: 'LabelName_',
13
+ });
14
+
15
+ export default TypeClassification;