cariboujs 2.0.4 → 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 (74) hide show
  1. package/README.md +8 -2
  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 +919 -0
  21. package/c/CLexerBase.js +96 -0
  22. package/c/CParser.js +14878 -0
  23. package/c/CParserBase.js +591 -0
  24. package/c/CParserListener.js +1062 -0
  25. package/c/CParserVisitor.js +712 -0
  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/csharp/v7/CSharpLexer.js +1339 -0
  34. package/csharp/v7/CSharpLexerBase.js +332 -0
  35. package/csharp/v7/CSharpParser.js +29239 -0
  36. package/csharp/v7/CSharpParserBase.js +48 -0
  37. package/csharp/v7/CSharpParserListener.js +2304 -0
  38. package/csharp/v7/CSharpParserVisitor.js +1540 -0
  39. package/csharp/v8-spec/CSharpLexer.js +1549 -0
  40. package/csharp/v8-spec/CSharpLexerBase.js +296 -0
  41. package/csharp/v8-spec/CSharpParser.js +45044 -0
  42. package/csharp/v8-spec/CSharpParserBase.js +569 -0
  43. package/csharp/v8-spec/CSharpParserListener.js +3582 -0
  44. package/csharp/v8-spec/CSharpParserVisitor.js +2392 -0
  45. package/geekcode/geekcodeLexer.js +232 -0
  46. package/geekcode/geekcodeListener.js +81 -0
  47. package/geekcode/geekcodeParser.js +1516 -0
  48. package/geekcode/geekcodeVisitor.js +58 -0
  49. package/kotlin/kotlin/KotlinLexer.js +1257 -1247
  50. package/kotlin/kotlin/KotlinParser.js +3991 -3425
  51. package/kotlin/kotlin/KotlinParserListener.js +36 -0
  52. package/kotlin/kotlin/KotlinParserVisitor.js +24 -0
  53. package/package.json +1 -1
  54. package/plantUML/PlantUMLLexer.js +215 -316
  55. package/plantUML/PlantUMLParser.js +1045 -2393
  56. package/plantUML/PlantUMLParserListener.js +171 -0
  57. package/plantUML/PlantUMLParserVisitor.js +118 -0
  58. package/sql/plsql/PlSqlParser.js +27973 -43771
  59. package/sql/plsql/PlSqlParserBase.js +30 -0
  60. package/sql/plsql/PlSqlParserListener.js +0 -9
  61. package/sql/plsql/PlSqlParserVisitor.js +0 -6
  62. package/sql/snowflake/SnowflakeLexer.js +5675 -5497
  63. package/sql/snowflake/SnowflakeParser.js +27230 -22653
  64. package/sql/snowflake/SnowflakeParserListener.js +278 -8
  65. package/sql/snowflake/SnowflakeParserVisitor.js +184 -4
  66. package/sql/sqlite/SQLiteParser.js +1115 -1115
  67. package/sql/sqlite/SQLiteParserListener.js +9 -9
  68. package/sql/sqlite/SQLiteParserVisitor.js +6 -6
  69. package/sysml-v2/SysMLv2Lexer.js +1047 -0
  70. package/sysml-v2/SysMLv2Parser.js +51339 -0
  71. package/sysml-v2/SysMLv2ParserListener.js +4464 -0
  72. package/sysml-v2/SysMLv2ParserVisitor.js +2980 -0
  73. package/plantUML/PlantUMLListener.js +0 -279
  74. 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;