sysml-v2-lsp 0.1.7 → 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 (122) hide show
  1. package/CHANGELOG.md +26 -107
  2. package/README.md +63 -264
  3. package/dist/server/mcpServer.mjs +20 -20
  4. package/dist/server/parser/parseWorker.mjs +1 -1
  5. package/dist/server/server.mjs +80 -67
  6. package/package.json +2 -2
  7. package/sysml.library/.project +17 -0
  8. package/sysml.library/.settings/org.eclipse.jdt.core.prefs +11 -0
  9. package/sysml.library/Domain Libraries/Analysis/.meta.json +10 -0
  10. package/sysml.library/Domain Libraries/Analysis/.project.json +27 -0
  11. package/sysml.library/Domain Libraries/Analysis/AnalysisTooling.sysml +34 -0
  12. package/sysml.library/Domain Libraries/Analysis/SampledFunctions.sysml +119 -0
  13. package/sysml.library/Domain Libraries/Analysis/StateSpaceRepresentation.sysml +143 -0
  14. package/sysml.library/Domain Libraries/Analysis/TradeStudies.sysml +171 -0
  15. package/sysml.library/Domain Libraries/Cause and Effect/.meta.json +8 -0
  16. package/sysml.library/Domain Libraries/Cause and Effect/.project.json +23 -0
  17. package/sysml.library/Domain Libraries/Cause and Effect/CausationConnections.sysml +83 -0
  18. package/sysml.library/Domain Libraries/Cause and Effect/CauseAndEffect.sysml +81 -0
  19. package/sysml.library/Domain Libraries/Geometry/.meta.json +8 -0
  20. package/sysml.library/Domain Libraries/Geometry/.project.json +27 -0
  21. package/sysml.library/Domain Libraries/Geometry/ShapeItems.sysml +899 -0
  22. package/sysml.library/Domain Libraries/Geometry/SpatialItems.sysml +168 -0
  23. package/sysml.library/Domain Libraries/Metadata/.meta.json +10 -0
  24. package/sysml.library/Domain Libraries/Metadata/.project.json +19 -0
  25. package/sysml.library/Domain Libraries/Metadata/ImageMetadata.sysml +78 -0
  26. package/sysml.library/Domain Libraries/Metadata/ModelingMetadata.sysml +143 -0
  27. package/sysml.library/Domain Libraries/Metadata/ParametersOfInterestMetadata.sysml +39 -0
  28. package/sysml.library/Domain Libraries/Metadata/RiskMetadata.sysml +100 -0
  29. package/sysml.library/Domain Libraries/Quantities and Units/.meta.json +29 -0
  30. package/sysml.library/Domain Libraries/Quantities and Units/.project.json +23 -0
  31. package/sysml.library/Domain Libraries/Quantities and Units/ISQ.sysml +42 -0
  32. package/sysml.library/Domain Libraries/Quantities and Units/ISQAcoustics.sysml +439 -0
  33. package/sysml.library/Domain Libraries/Quantities and Units/ISQAtomicNuclear.sysml +2726 -0
  34. package/sysml.library/Domain Libraries/Quantities and Units/ISQBase.sysml +206 -0
  35. package/sysml.library/Domain Libraries/Quantities and Units/ISQCharacteristicNumbers.sysml +1991 -0
  36. package/sysml.library/Domain Libraries/Quantities and Units/ISQChemistryMolecular.sysml +1353 -0
  37. package/sysml.library/Domain Libraries/Quantities and Units/ISQCondensedMatter.sysml +1223 -0
  38. package/sysml.library/Domain Libraries/Quantities and Units/ISQElectromagnetism.sysml +2333 -0
  39. package/sysml.library/Domain Libraries/Quantities and Units/ISQInformation.sysml +958 -0
  40. package/sysml.library/Domain Libraries/Quantities and Units/ISQLight.sysml +1537 -0
  41. package/sysml.library/Domain Libraries/Quantities and Units/ISQMechanics.sysml +1564 -0
  42. package/sysml.library/Domain Libraries/Quantities and Units/ISQSpaceTime.sysml +1169 -0
  43. package/sysml.library/Domain Libraries/Quantities and Units/ISQThermodynamics.sysml +1256 -0
  44. package/sysml.library/Domain Libraries/Quantities and Units/MeasurementRefCalculations.sysml +30 -0
  45. package/sysml.library/Domain Libraries/Quantities and Units/MeasurementReferences.sysml +526 -0
  46. package/sysml.library/Domain Libraries/Quantities and Units/Quantities.sysml +107 -0
  47. package/sysml.library/Domain Libraries/Quantities and Units/QuantityCalculations.sysml +70 -0
  48. package/sysml.library/Domain Libraries/Quantities and Units/SI.sysml +378 -0
  49. package/sysml.library/Domain Libraries/Quantities and Units/SIPrefixes.sysml +48 -0
  50. package/sysml.library/Domain Libraries/Quantities and Units/TensorCalculations.sysml +50 -0
  51. package/sysml.library/Domain Libraries/Quantities and Units/Time.sysml +274 -0
  52. package/sysml.library/Domain Libraries/Quantities and Units/USCustomaryUnits.sysml +260 -0
  53. package/sysml.library/Domain Libraries/Quantities and Units/VectorCalculations.sysml +62 -0
  54. package/sysml.library/Domain Libraries/Requirement Derivation/.meta.json +8 -0
  55. package/sysml.library/Domain Libraries/Requirement Derivation/.project.json +19 -0
  56. package/sysml.library/Domain Libraries/Requirement Derivation/DerivationConnections.sysml +63 -0
  57. package/sysml.library/Domain Libraries/Requirement Derivation/RequirementDerivation.sysml +39 -0
  58. package/sysml.library/Kernel Libraries/Kernel Data Type Library/.meta.json +9 -0
  59. package/sysml.library/Kernel Libraries/Kernel Data Type Library/.project.json +11 -0
  60. package/sysml.library/Kernel Libraries/Kernel Data Type Library/Collections.kerml +147 -0
  61. package/sysml.library/Kernel Libraries/Kernel Data Type Library/ScalarValues.kerml +23 -0
  62. package/sysml.library/Kernel Libraries/Kernel Data Type Library/VectorValues.kerml +64 -0
  63. package/sysml.library/Kernel Libraries/Kernel Function Library/.meta.json +23 -0
  64. package/sysml.library/Kernel Libraries/Kernel Function Library/.project.json +15 -0
  65. package/sysml.library/Kernel Libraries/Kernel Function Library/BaseFunctions.kerml +80 -0
  66. package/sysml.library/Kernel Libraries/Kernel Function Library/BooleanFunctions.kerml +22 -0
  67. package/sysml.library/Kernel Libraries/Kernel Function Library/CollectionFunctions.kerml +68 -0
  68. package/sysml.library/Kernel Libraries/Kernel Function Library/ComplexFunctions.kerml +47 -0
  69. package/sysml.library/Kernel Libraries/Kernel Function Library/ControlFunctions.kerml +117 -0
  70. package/sysml.library/Kernel Libraries/Kernel Function Library/DataFunctions.kerml +43 -0
  71. package/sysml.library/Kernel Libraries/Kernel Function Library/IntegerFunctions.kerml +43 -0
  72. package/sysml.library/Kernel Libraries/Kernel Function Library/NaturalFunctions.kerml +27 -0
  73. package/sysml.library/Kernel Libraries/Kernel Function Library/NumericalFunctions.kerml +43 -0
  74. package/sysml.library/Kernel Libraries/Kernel Function Library/OccurrenceFunctions.kerml +154 -0
  75. package/sysml.library/Kernel Libraries/Kernel Function Library/RationalFunctions.kerml +49 -0
  76. package/sysml.library/Kernel Libraries/Kernel Function Library/RealFunctions.kerml +56 -0
  77. package/sysml.library/Kernel Libraries/Kernel Function Library/ScalarFunctions.kerml +33 -0
  78. package/sysml.library/Kernel Libraries/Kernel Function Library/SequenceFunctions.kerml +111 -0
  79. package/sysml.library/Kernel Libraries/Kernel Function Library/StringFunctions.kerml +25 -0
  80. package/sysml.library/Kernel Libraries/Kernel Function Library/TrigFunctions.kerml +35 -0
  81. package/sysml.library/Kernel Libraries/Kernel Function Library/VectorFunctions.kerml +273 -0
  82. package/sysml.library/Kernel Libraries/Kernel Semantic Library/.meta.json +22 -0
  83. package/sysml.library/Kernel Libraries/Kernel Semantic Library/.project.json +15 -0
  84. package/sysml.library/Kernel Libraries/Kernel Semantic Library/Base.kerml +95 -0
  85. package/sysml.library/Kernel Libraries/Kernel Semantic Library/Clocks.kerml +156 -0
  86. package/sysml.library/Kernel Libraries/Kernel Semantic Library/ControlPerformances.kerml +135 -0
  87. package/sysml.library/Kernel Libraries/Kernel Semantic Library/FeatureReferencingPerformances.kerml +190 -0
  88. package/sysml.library/Kernel Libraries/Kernel Semantic Library/KerML.kerml +483 -0
  89. package/sysml.library/Kernel Libraries/Kernel Semantic Library/Links.kerml +67 -0
  90. package/sysml.library/Kernel Libraries/Kernel Semantic Library/Metaobjects.kerml +58 -0
  91. package/sysml.library/Kernel Libraries/Kernel Semantic Library/Objects.kerml +212 -0
  92. package/sysml.library/Kernel Libraries/Kernel Semantic Library/Observation.kerml +161 -0
  93. package/sysml.library/Kernel Libraries/Kernel Semantic Library/Occurrences.kerml +992 -0
  94. package/sysml.library/Kernel Libraries/Kernel Semantic Library/Performances.kerml +293 -0
  95. package/sysml.library/Kernel Libraries/Kernel Semantic Library/SpatialFrames.kerml +197 -0
  96. package/sysml.library/Kernel Libraries/Kernel Semantic Library/StatePerformances.kerml +145 -0
  97. package/sysml.library/Kernel Libraries/Kernel Semantic Library/Transfers.kerml +281 -0
  98. package/sysml.library/Kernel Libraries/Kernel Semantic Library/TransitionPerformances.kerml +66 -0
  99. package/sysml.library/Kernel Libraries/Kernel Semantic Library/Triggers.kerml +188 -0
  100. package/sysml.library/Systems Library/.meta.json +27 -0
  101. package/sysml.library/Systems Library/.project.json +19 -0
  102. package/sysml.library/Systems Library/Actions.sysml +552 -0
  103. package/sysml.library/Systems Library/Allocations.sysml +29 -0
  104. package/sysml.library/Systems Library/AnalysisCases.sysml +38 -0
  105. package/sysml.library/Systems Library/Attributes.sysml +25 -0
  106. package/sysml.library/Systems Library/Calculations.sysml +37 -0
  107. package/sysml.library/Systems Library/Cases.sysml +71 -0
  108. package/sysml.library/Systems Library/Connections.sysml +60 -0
  109. package/sysml.library/Systems Library/Constraints.sysml +44 -0
  110. package/sysml.library/Systems Library/Flows.sysml +126 -0
  111. package/sysml.library/Systems Library/Interfaces.sysml +89 -0
  112. package/sysml.library/Systems Library/Items.sysml +153 -0
  113. package/sysml.library/Systems Library/Metadata.sysml +32 -0
  114. package/sysml.library/Systems Library/Parts.sysml +81 -0
  115. package/sysml.library/Systems Library/Ports.sysml +54 -0
  116. package/sysml.library/Systems Library/Requirements.sysml +194 -0
  117. package/sysml.library/Systems Library/StandardViewDefinitions.sysml +123 -0
  118. package/sysml.library/Systems Library/States.sysml +103 -0
  119. package/sysml.library/Systems Library/SysML.sysml +539 -0
  120. package/sysml.library/Systems Library/UseCases.sysml +57 -0
  121. package/sysml.library/Systems Library/VerificationCases.sysml +103 -0
  122. package/sysml.library/Systems Library/Views.sysml +164 -0
@@ -1027,4 +1027,4 @@ package WarmUp {
1027
1027
  `),e=r.slice(1,r.length-1),t=30,i=[];for(let s=0;s<e.length;s+=t){let a=e.slice(s,s+t).join(`
1028
1028
  `);i.push(`package WU_${i.length} {
1029
1029
  ${a}
1030
- }`)}return i}function _c(r){let e=ct.fromString(r),t=new d(e),i=new kr(t);i.fill();let s=new n(i);s.removeErrorListeners(),s.interpreter.predictionMode=B.SLL,s.errorHandler=new Nn;try{s.rootNamespace()}catch{i.seek(0),s.reset(),s.interpreter.predictionMode=B.LL,s.errorHandler=new Dr,s.removeErrorListeners();try{s.rootNamespace()}catch{}}}var M1=new Set(["about","abstract","accept","action","actor","after","alias","all","allocate","allocation","analysis","assert","assign","assume","attribute","bind","binding","calc","case","comment","concern","connect","connection","constraint","decide","def","default","defined","dependency","derived","do","doc","else","end","entry","enum","event","exhibit","exit","expose","feature","filter","first","flow","for","fork","frame","from","if","import","in","include","individual","inout","interface","item","join","language","library","locale","merge","message","meta","metadata","multiplicity","namespace","nonunique","not","null","objective","occurrence","of","ordered","out","package","parallel","part","perform","port","private","protected","public","readonly","redefines","ref","references","render","rendering","rep","require","requirement","return","satisfy","send","snapshot","specializes","stakeholder","state","subject","subsets","succession","then","timeslice","to","transition","type","use","variant","variation","verification","verify","view","viewpoint","when","while"]);function qc(r,e){let t=r.length,i=e.length,s=Array.from({length:t+1},()=>Array(i+1).fill(0));for(let a=0;a<=t;a++)s[a][0]=a;for(let a=0;a<=i;a++)s[0][a]=a;for(let a=1;a<=t;a++)for(let u=1;u<=i;u++){let c=r[a-1]===e[u-1]?0:1;s[a][u]=Math.min(s[a-1][u]+1,s[a][u-1]+1,s[a-1][u-1]+c)}return s[t][i]}function Gc(r){let e=r.toLowerCase();if(e.length<4||M1.has(e))return;let t=e.length<=5?1:2,i,s=t+1;for(let a of M1){if(Math.abs(a.length-e.length)>t)continue;let u=qc(e,a);u>0&&u<s&&(s=u,i=a)}return i}var Kc=new Set([d.IDENTIFIER,d.COLON,d.DEF,d.LBRACE,d.LBRACK,d.ABOUT]),O0=new Set([d.PART,d.PORT,d.ITEM,d.ATTRIBUTE,d.ACTION,d.CALC,d.STATE,d.CONSTRAINT,d.REQUIREMENT,d.CONCERN,d.CASE,d.ANALYSIS,d.VERIFICATION,d.VIEW,d.VIEWPOINT,d.RENDERING,d.METADATA,d.PACKAGE,d.NAMESPACE,d.ENUM,d.ALLOCATION,d.CONNECTION,d.INTERFACE,d.OCCURRENCE,d.INDIVIDUAL,d.FLOW,d.SUCCESSION,d.BINDING,d.MESSAGE,d.TRANSITION,d.TYPE,d.CLASSIFIER,d.DATATYPE,d.CLASS,d.STRUCT,d.ASSOC,d.METACLASS,d.INTERACTION,d.BEHAVIOR,d.FUNCTION,d.PREDICATE,d.FEATURE,d.CONNECTOR,d.STEP,d.EXPR,d.BOOL,d.INV,d.MULTIPLICITY,d.ALIAS,d.COMMENT,d.DOC,d.REP,d.DEPENDENCY,d.IMPORT,d.DEF,d.REF,d.ALL,d.ABSTRACT,d.VARIATION,d.DERIVED,d.COMPOSITE,d.CONST,d.CONSTANT,d.VAR,d.MEMBER,d.RETURN,d.PUBLIC,d.PRIVATE,d.PROTECTED,d.IN,d.OUT,d.INOUT,d.END,d.ACTOR,d.STAKEHOLDER,d.SUBJECT,d.VARIANT,d.SNAPSHOT,d.TIMESLICE,d.FORK,d.JOIN,d.MERGE,d.DECIDE,d.PERFORM,d.EXHIBIT,d.INCLUDE,d.SATISFY,d.ASSERT,d.VERIFY,d.RENDER,d.CONNECT,d.ALLOCATE,d.BIND,d.EXPOSE,d.EVENT,d.FIRST,d.THEN,d.TO,d.FROM,d.REDEFINES,d.SUBSETS,d.SPECIALIZES,d.REFERENCES,d.CONJUGATES,d.CHAINS,d.CROSSES,d.UNIONS,d.INTERSECTS,d.DIFFERENCES,d.SPECIALIZATION,d.CONJUGATION,d.DISJOINING,d.INVERTING,d.FEATURING,d.TYPING,d.REDEFINITION,d.SUBTYPE,d.SUBCLASSIFIER,d.SUBSET,d.CONJUGATE,d.DISJOINT,d.INVERSE,d.ASSUME,d.REQUIRE,d.FRAME,d.OBJECTIVE,d.ENTRY,d.DO,d.EXIT,d.ACCEPT,d.SEND,d.ASSIGN,d.TERMINATE,d.FOR,d.ABOUT,d.BY,d.FILTER,d.NEW,d.META,d.OF,d.COLON,d.COLON_GT,d.COLON_GT_GT,d.COLON_COLON,d.COLON_COLON_GT,d.GT,d.FAT_ARROW,d.TILDE,d.COMMA,d.HASH]);function jc(r){let e=[];r.fill();let t=r.getTokens(),i=[];for(let s=0;s<t.length;s++){let a=t[s];a.channel===0&&a.type!==R.EOF&&i.push(a)}for(let s=0;s<i.length;s++){let a=i[s];if(a.type!==d.IDENTIFIER||!a.text||s>0&&O0.has(i[s-1].type))continue;if(s>0){let f=i[s-1].type;if(f===d.DOT||f===d.EQ||f===d.COLON_EQ)continue}let u=s===0;if(!u&&s+1<i.length&&Kc.has(i[s+1].type)&&(u=!0),!u)continue;let c=Gc(a.text),h=(a.line??1)-1,p=a.column??0,x=c?`Unknown keyword '${a.text}'. Did you mean '${c}'?`:`Unexpected identifier '${a.text}' where a SysML keyword was expected.`;e.push({severity:1,range:{start:{line:h,character:p},end:{line:h,character:p+a.text.length}},message:x,source:"sysml"})}return e}var Qc=new Set(["about","abstract","accept","action","actor","after","alias","all","allocate","allocation","analysis","and","as","assert","assign","assume","attribute","bind","binding","bool","by","calc","case","comment","concern","connect","connection","constraint","decide","def","default","defined","dependency","derived","do","doc","else","end","entry","enum","event","exhibit","exit","expose","false","feature","filter","first","flow","for","fork","frame","from","hastype","if","implies","import","in","include","individual","inout","interface","istype","item","join","language","library","locale","merge","message","meta","metadata","multiplicity","namespace","nonunique","not","null","objective","occurrence","of","or","ordered","out","package","parallel","part","perform","port","private","protected","public","readonly","redefines","ref","references","render","rendering","rep","require","requirement","return","satisfy","send","snapshot","specializes","stakeholder","state","subject","subsets","succession","then","timeslice","to","transition","true","type","use","variant","variation","verification","verify","view","viewpoint","when","while","xor"]);var zc=3;var Yc=6,Wc=7,Jc=8,Xc=9,$c=10;function Zc(r){if(r.startsWith("/*")||r.startsWith("//"))return Wc;if(r.startsWith('"')||r.startsWith("'"))return Jc;if(/^\d/.test(r))return Xc;if(/^[+\-*/<>=!&|^~%]+$/.test(r)||r==="::"||r===":>"||r===":>>")return $c;if(Qc.has(r))return Yc;if(/^[a-zA-Z_]\w*$/.test(r))return zc}function eh(r){r.fill();let e=r.getTokens(),t=[],i=0,s=0;for(let a=0;a<e.length;a++){let u=e[a];if(!u.text||u.channel!==0)continue;let c=Zc(u.text);if(c===void 0)continue;let h=(u.line??1)-1,p=u.column??0,x=u.text.length,f=h-i,y=f===0?p-s:p;t.push(f,y,x,c,0),i=h,s=p}return t}var th=new Set([R.EOF,d.RBRACE,d.SEMI]);function rh(r,e){if(r.length===0)return r;e.fill();let t=e.getTokens(),i=[];for(let s of t)s.channel===0&&i.push(s);return r.map(s=>{let a=i.find(h=>h.line-1===s.line&&h.column===s.column);if(!a||!th.has(a.type)&&a.type!==R.EOF)return s;let u=i.indexOf(a);if(u<=0)return s;let c=i[u-1];return c.text&&c.type===d.IDENTIFIER?{line:(c.line??1)-1,column:c.column??0,length:c.text.length,message:`Unexpected identifier '${c.text}'. Expected a SysML keyword (package, part, attribute, action, etc.)`}:s})}var ih=new Set(["abstract","accept","action","actor","alias","allocate","allocation","analysis","assert","assign","assume","attribute","bind","binding","calc","case","comment","concern","connect","connection","constraint","decide","dependency","doc","end","entry","enum","event","exhibit","exit","expose","feature","filter","first","flow","for","fork","frame","if","import","in","include","individual","inout","interface","item","join","merge","message","metadata","multiplicity","namespace","objective","occurrence","of","ordered","out","package","parallel","part","perform","port","private","protected","public","readonly","redefines","ref","render","rendering","rep","require","requirement","return","satisfy","send","snapshot","specializes","stakeholder","state","subject","subsets","succession","then","timeslice","to","transition","type","use","variant","variation","verification","verify","view","viewpoint","when","while"]);function nh(r){let e=[];r.fill();let t=r.getTokens(),i=[];for(let s of t)s.channel===0&&s.type!==R.EOF&&i.push(s);for(let s=0;s<i.length;s++){let a=i[s];if(a.type!==d.IDENTIFIER||!a.text)continue;let u=a.text.toLowerCase();if(ih.has(u)||M1.has(u))continue;let c=s===0;if(!c&&s>0){let f=i[s-1].type;if((f===d.LBRACE||f===d.RBRACE||f===d.SEMI)&&(c=!0),O0.has(f)||f===d.COLON||f===d.COLON_GT||f===d.COLON_GT_GT||f===d.COLON_COLON||f===d.EQ||f===d.DOT)continue}if(!c)continue;if(s+1<i.length){let x=i[s+1];if(x.type===d.COLON||x.type===d.EQ||x.type===d.LBRACE||x.type===d.COLON_GT||x.type===d.COLON_GT_GT||x.type===d.SEMI||x.type===d.LBRACK||x.type===d.COLON_COLON||x.type===d.DOT||x.type===d.LT||x.type===d.GT||x.type===d.LE||x.type===d.GE||x.type===d.EQ_EQ||x.type===d.BANG_EQ||x.type===d.PLUS||x.type===d.MINUS||x.type===d.STAR||x.type===d.SLASH||x.type===d.AND||x.type===d.OR||x.type===d.IMPLIES)continue}let h=(a.line??1)-1,p=a.column??0;e.push({severity:1,range:{start:{line:h,character:p},end:{line:h,character:p+a.text.length}},message:`Unexpected '${a.text}'. Expected a SysML keyword (package, part, attribute, action, etc.)`,source:"sysml"})}return e}var Bu=new Set;function w0(r){let{id:e,text:t,uri:i,version:s}=r,a=Date.now(),u=ct.fromString(t),c=new d(u),h=new kr(c);h.fill();let p=Date.now()-a,x=Date.now(),f=new n(h);f.removeErrorListeners(),f.interpreter.predictionMode=B.SLL,f.errorHandler=new Nn;let y=[],N="SLL";try{f.rootNamespace()}catch{N="LL",h.seek(0),f.reset(),f.interpreter.predictionMode=B.LL,f.errorHandler=new Dr;let Ie=new Hu;c.removeErrorListeners(),f.removeErrorListeners(),f.addErrorListener(Ie);try{f.rootNamespace()}catch{}y=Ie.getErrors().map(kt=>({line:kt.line,column:kt.column,message:kt.message,length:kt.length}))}y=rh(y,h);let se=nh(h),vr=Date.now()-x;if(Bu.has(e)){Bu.delete(e);return}let N1=jc(h),k0=new Set(y.map(Ie=>`${Ie.line}:${Ie.column}`));for(let Ie of se){let kt=`${Ie.range.start.line}:${Ie.range.start.character}`;k0.has(kt)||N1.push(Ie)}let D0=eh(h),F0={id:e,uri:i,version:s,errors:y,keywordDiagnostics:N1,semanticTokenData:D0,timing:{lexMs:p,parseMs:vr},mode:N};wt?.postMessage(F0)}setImmediate(()=>{let r=Vc(),e=Date.now(),t=!1;for(let i=0;i<r.length;i++){if(wt){let s=I0(wt);for(;s;){let a=s.message;"cancel"in a?Bu.add(a.id):(w0(a),t=!0),s=I0(wt)}}if(t){wt?.postMessage({warmup:!0,elapsed:Date.now()-e,interrupted:!0,chunksCompleted:i,totalChunks:r.length});return}try{_c(r[i])}catch{}}wt?.postMessage({warmup:!0,elapsed:Date.now()-e,interrupted:!1,chunksCompleted:r.length,totalChunks:r.length})});wt?.on("message",r=>{if("cancel"in r){Bu.add(r.id);return}w0(r)});export{nh as flagUnknownIdentifiers,jc as validateKeywordsFromTokens};
1030
+ }`)}return i}function _c(r){let e=ct.fromString(r),t=new d(e),i=new kr(t);i.fill();let s=new n(i);s.removeErrorListeners(),s.interpreter.predictionMode=B.SLL,s.errorHandler=new Nn;try{s.rootNamespace()}catch{i.seek(0),s.reset(),s.interpreter.predictionMode=B.LL,s.errorHandler=new Dr,s.removeErrorListeners();try{s.rootNamespace()}catch{}}}var M1=new Set(["about","abstract","accept","action","actor","after","alias","all","allocate","allocation","analysis","assert","assign","assume","attribute","bind","binding","calc","case","comment","concern","connect","connection","constraint","decide","def","default","defined","dependency","derived","do","doc","else","end","entry","enum","event","exhibit","exit","expose","feature","filter","first","flow","for","fork","frame","from","if","import","in","include","individual","inout","interface","item","join","language","library","locale","merge","message","meta","metadata","multiplicity","namespace","nonunique","not","null","objective","occurrence","of","ordered","out","package","parallel","part","perform","port","private","protected","public","readonly","redefines","ref","references","render","rendering","rep","require","requirement","return","satisfy","send","snapshot","specializes","stakeholder","state","subject","subsets","succession","then","timeslice","to","transition","type","use","variant","variation","verification","verify","view","viewpoint","when","while"]);function qc(r,e){let t=r.length,i=e.length,s=Array.from({length:t+1},()=>Array(i+1).fill(0));for(let a=0;a<=t;a++)s[a][0]=a;for(let a=0;a<=i;a++)s[0][a]=a;for(let a=1;a<=t;a++)for(let u=1;u<=i;u++){let c=r[a-1]===e[u-1]?0:1;s[a][u]=Math.min(s[a-1][u]+1,s[a][u-1]+1,s[a-1][u-1]+c)}return s[t][i]}function Gc(r){let e=r.toLowerCase();if(e.length<4||M1.has(e))return;let t=e.length<=5?1:2,i,s=t+1;for(let a of M1){if(Math.abs(a.length-e.length)>t)continue;let u=qc(e,a);u>0&&u<s&&(s=u,i=a)}return i}var Kc=new Set([d.IDENTIFIER,d.COLON,d.DEF,d.LBRACE,d.LBRACK,d.ABOUT]),O0=new Set([d.PART,d.PORT,d.ITEM,d.ATTRIBUTE,d.ACTION,d.CALC,d.STATE,d.CONSTRAINT,d.REQUIREMENT,d.CONCERN,d.CASE,d.ANALYSIS,d.VERIFICATION,d.VIEW,d.VIEWPOINT,d.RENDERING,d.METADATA,d.PACKAGE,d.NAMESPACE,d.ENUM,d.ALLOCATION,d.CONNECTION,d.INTERFACE,d.OCCURRENCE,d.INDIVIDUAL,d.FLOW,d.SUCCESSION,d.BINDING,d.MESSAGE,d.TRANSITION,d.TYPE,d.CLASSIFIER,d.DATATYPE,d.CLASS,d.STRUCT,d.ASSOC,d.METACLASS,d.INTERACTION,d.BEHAVIOR,d.FUNCTION,d.PREDICATE,d.FEATURE,d.CONNECTOR,d.STEP,d.EXPR,d.BOOL,d.INV,d.MULTIPLICITY,d.ALIAS,d.COMMENT,d.DOC,d.REP,d.DEPENDENCY,d.IMPORT,d.DEF,d.REF,d.ALL,d.ABSTRACT,d.VARIATION,d.DERIVED,d.COMPOSITE,d.CONST,d.CONSTANT,d.VAR,d.MEMBER,d.RETURN,d.PUBLIC,d.PRIVATE,d.PROTECTED,d.IN,d.OUT,d.INOUT,d.END,d.ACTOR,d.STAKEHOLDER,d.SUBJECT,d.VARIANT,d.SNAPSHOT,d.TIMESLICE,d.FORK,d.JOIN,d.MERGE,d.DECIDE,d.PERFORM,d.EXHIBIT,d.INCLUDE,d.SATISFY,d.ASSERT,d.VERIFY,d.RENDER,d.CONNECT,d.ALLOCATE,d.BIND,d.EXPOSE,d.EVENT,d.FIRST,d.THEN,d.TO,d.FROM,d.REDEFINES,d.SUBSETS,d.SPECIALIZES,d.REFERENCES,d.CONJUGATES,d.CHAINS,d.CROSSES,d.UNIONS,d.INTERSECTS,d.DIFFERENCES,d.SPECIALIZATION,d.CONJUGATION,d.DISJOINING,d.INVERTING,d.FEATURING,d.TYPING,d.REDEFINITION,d.SUBTYPE,d.SUBCLASSIFIER,d.SUBSET,d.CONJUGATE,d.DISJOINT,d.INVERSE,d.ASSUME,d.REQUIRE,d.FRAME,d.OBJECTIVE,d.ENTRY,d.DO,d.EXIT,d.ACCEPT,d.SEND,d.ASSIGN,d.TERMINATE,d.FOR,d.ABOUT,d.BY,d.FILTER,d.NEW,d.META,d.OF,d.COLON,d.COLON_GT,d.COLON_GT_GT,d.COLON_COLON,d.COLON_COLON_GT,d.GT,d.FAT_ARROW,d.TILDE,d.COMMA,d.HASH,d.AT]);function jc(r){let e=[];r.fill();let t=r.getTokens(),i=[];for(let s=0;s<t.length;s++){let a=t[s];a.channel===0&&a.type!==R.EOF&&i.push(a)}for(let s=0;s<i.length;s++){let a=i[s];if(a.type!==d.IDENTIFIER||!a.text||s>0&&O0.has(i[s-1].type))continue;if(s>0){let f=i[s-1].type;if(f===d.DOT||f===d.EQ||f===d.COLON_EQ)continue}let u=s===0;if(!u&&s+1<i.length&&Kc.has(i[s+1].type)&&(u=!0),!u)continue;let c=Gc(a.text);if(!c)continue;let h=(a.line??1)-1,p=a.column??0,x=`Unknown keyword '${a.text}'. Did you mean '${c}'?`;e.push({severity:1,range:{start:{line:h,character:p},end:{line:h,character:p+a.text.length}},message:x,source:"sysml"})}return e}var Qc=new Set(["about","abstract","accept","action","actor","after","alias","all","allocate","allocation","analysis","and","as","assert","assign","assume","attribute","bind","binding","bool","by","calc","case","comment","concern","connect","connection","constraint","decide","def","default","defined","dependency","derived","do","doc","else","end","entry","enum","event","exhibit","exit","expose","false","feature","filter","first","flow","for","fork","frame","from","hastype","if","implies","import","in","include","individual","inout","interface","istype","item","join","language","library","locale","merge","message","meta","metadata","multiplicity","namespace","nonunique","not","null","objective","occurrence","of","or","ordered","out","package","parallel","part","perform","port","private","protected","public","readonly","redefines","ref","references","render","rendering","rep","require","requirement","return","satisfy","send","snapshot","specializes","stakeholder","state","subject","subsets","succession","then","timeslice","to","transition","true","type","use","variant","variation","verification","verify","view","viewpoint","when","while","xor"]);var zc=3;var Yc=6,Wc=7,Jc=8,Xc=9,$c=10;function Zc(r){if(r.startsWith("/*")||r.startsWith("//"))return Wc;if(r.startsWith('"')||r.startsWith("'"))return Jc;if(/^\d/.test(r))return Xc;if(/^[+\-*/<>=!&|^~%]+$/.test(r)||r==="::"||r===":>"||r===":>>")return $c;if(Qc.has(r))return Yc;if(/^[a-zA-Z_]\w*$/.test(r))return zc}function eh(r){r.fill();let e=r.getTokens(),t=[],i=0,s=0;for(let a=0;a<e.length;a++){let u=e[a];if(!u.text||u.channel!==0)continue;let c=Zc(u.text);if(c===void 0)continue;let h=(u.line??1)-1,p=u.column??0,x=u.text.length,f=h-i,y=f===0?p-s:p;t.push(f,y,x,c,0),i=h,s=p}return t}var th=new Set([R.EOF,d.RBRACE,d.SEMI]);function rh(r,e){if(r.length===0)return r;e.fill();let t=e.getTokens(),i=[];for(let s of t)s.channel===0&&i.push(s);return r.map(s=>{let a=i.find(h=>h.line-1===s.line&&h.column===s.column);if(!a||!th.has(a.type)&&a.type!==R.EOF)return s;let u=i.indexOf(a);if(u<=0)return s;let c=i[u-1];return c.text&&c.type===d.IDENTIFIER?{line:(c.line??1)-1,column:c.column??0,length:c.text.length,message:`Unexpected identifier '${c.text}'. Expected a SysML keyword (package, part, attribute, action, etc.)`}:s})}var ih=new Set(["abstract","accept","action","actor","alias","allocate","allocation","analysis","assert","assign","assume","attribute","bind","binding","calc","case","comment","concern","connect","connection","constraint","decide","dependency","doc","end","entry","enum","event","exhibit","exit","expose","feature","filter","first","flow","for","fork","frame","if","import","in","include","individual","inout","interface","item","join","merge","message","metadata","multiplicity","namespace","objective","occurrence","of","ordered","out","package","parallel","part","perform","port","private","protected","public","readonly","redefines","ref","render","rendering","rep","require","requirement","return","satisfy","send","snapshot","specializes","stakeholder","state","subject","subsets","succession","then","timeslice","to","transition","type","use","variant","variation","verification","verify","view","viewpoint","when","while"]);function nh(r){let e=[];r.fill();let t=r.getTokens(),i=[];for(let s of t)s.channel===0&&s.type!==R.EOF&&i.push(s);for(let s=0;s<i.length;s++){let a=i[s];if(a.type!==d.IDENTIFIER||!a.text)continue;let u=a.text.toLowerCase();if(ih.has(u)||M1.has(u))continue;let c=s===0;if(!c&&s>0){let f=i[s-1].type;if((f===d.LBRACE||f===d.RBRACE||f===d.SEMI)&&(c=!0),O0.has(f)||f===d.COLON||f===d.COLON_GT||f===d.COLON_GT_GT||f===d.COLON_COLON||f===d.EQ||f===d.DOT)continue}if(!c)continue;if(s+1<i.length){let x=i[s+1];if(x.type===d.COLON||x.type===d.EQ||x.type===d.LBRACE||x.type===d.COLON_GT||x.type===d.COLON_GT_GT||x.type===d.SEMI||x.type===d.LBRACK||x.type===d.COLON_COLON||x.type===d.DOT||x.type===d.LT||x.type===d.GT||x.type===d.LE||x.type===d.GE||x.type===d.EQ_EQ||x.type===d.BANG_EQ||x.type===d.PLUS||x.type===d.MINUS||x.type===d.STAR||x.type===d.SLASH||x.type===d.AND||x.type===d.OR||x.type===d.IMPLIES)continue}let h=(a.line??1)-1,p=a.column??0;e.push({severity:1,range:{start:{line:h,character:p},end:{line:h,character:p+a.text.length}},message:`Unexpected '${a.text}'. Expected a SysML keyword (package, part, attribute, action, etc.)`,source:"sysml"})}return e}var Bu=new Set;function w0(r){let{id:e,text:t,uri:i,version:s}=r,a=Date.now(),u=ct.fromString(t),c=new d(u),h=new kr(c);h.fill();let p=Date.now()-a,x=Date.now(),f=new n(h);f.removeErrorListeners(),f.interpreter.predictionMode=B.SLL,f.errorHandler=new Nn;let y=[],N="SLL";try{f.rootNamespace()}catch{N="LL",h.seek(0),f.reset(),f.interpreter.predictionMode=B.LL,f.errorHandler=new Dr;let Ie=new Hu;c.removeErrorListeners(),f.removeErrorListeners(),f.addErrorListener(Ie);try{f.rootNamespace()}catch{}y=Ie.getErrors().map(kt=>({line:kt.line,column:kt.column,message:kt.message,length:kt.length}))}y=rh(y,h);let se=nh(h),vr=Date.now()-x;if(Bu.has(e)){Bu.delete(e);return}let N1=jc(h),k0=new Set(y.map(Ie=>`${Ie.line}:${Ie.column}`));for(let Ie of se){let kt=`${Ie.range.start.line}:${Ie.range.start.character}`;k0.has(kt)||N1.push(Ie)}let D0=eh(h),F0={id:e,uri:i,version:s,errors:y,keywordDiagnostics:N1,semanticTokenData:D0,timing:{lexMs:p,parseMs:vr},mode:N};wt?.postMessage(F0)}setImmediate(()=>{let r=Vc(),e=Date.now(),t=!1;for(let i=0;i<r.length;i++){if(wt){let s=I0(wt);for(;s;){let a=s.message;"cancel"in a?Bu.add(a.id):(w0(a),t=!0),s=I0(wt)}}if(t){wt?.postMessage({warmup:!0,elapsed:Date.now()-e,interrupted:!0,chunksCompleted:i,totalChunks:r.length});return}try{_c(r[i])}catch{}}wt?.postMessage({warmup:!0,elapsed:Date.now()-e,interrupted:!1,chunksCompleted:r.length,totalChunks:r.length})});wt?.on("message",r=>{if("cancel"in r){Bu.add(r.id);return}w0(r)});export{nh as flagUnknownIdentifiers,jc as validateKeywordsFromTokens};