@oddo/lang 0.0.16 → 0.0.18

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.
package/dist/index.js CHANGED
@@ -341,7 +341,7 @@ var lexer = new (0, _chevrotain.Lexer)(allTokens);
341
341
 
342
342
  // src/parser.mjs
343
343
 
344
- var MAX_TOKEN_LOOKAHEAD_COUNT = 30;
344
+ var MAX_TOKEN_LOOKAHEAD_COUNT = Infinity;
345
345
  var OddoParser = class extends _chevrotain.CstParser {
346
346
  constructor() {
347
347
  super([
@@ -3841,6 +3841,13 @@ var MODIFIER_TRANSFORMATIONS = {
3841
3841
  const leftName = (_c = stmt.expression.left) == null ? void 0 : _c.name;
3842
3842
  if (!leftName && ((_d = stmt.expression.left) == null ? void 0 : _d.type) === "memberAccess") {
3843
3843
  hasMutation = true;
3844
+ const rootName = extractMemberRoot(stmt.expression.left);
3845
+ if (rootName && stateSetterMap.has(rootName)) {
3846
+ stateAssignmentsMap.set(rootName, {
3847
+ kind: "state",
3848
+ setter: stateSetterMap.get(rootName)
3849
+ });
3850
+ }
3844
3851
  let rightOddo2 = stmt.expression.right;
3845
3852
  const op2 = stmt.expression.operator;
3846
3853
  if (op2 !== ":=") {
@@ -3963,6 +3970,7 @@ var MODIFIER_TRANSFORMATIONS = {
3963
3970
  for (const processed of processedStatements) {
3964
3971
  const nodesToScan = [];
3965
3972
  if (processed.rightOddo) nodesToScan.push(processed.rightOddo);
3973
+ if (processed.leftOddo) nodesToScan.push(processed.leftOddo);
3966
3974
  if ((_h = processed.sliceOddo) == null ? void 0 : _h.start) nodesToScan.push(processed.sliceOddo.start);
3967
3975
  if ((_i = processed.sliceOddo) == null ? void 0 : _i.end) nodesToScan.push(processed.sliceOddo.end);
3968
3976
  if (processed.stmtOddo) nodesToScan.push(processed.stmtOddo);
@@ -4066,11 +4074,13 @@ var MODIFIER_TRANSFORMATIONS = {
4066
4074
  mutateBodyStmts.push(t.expressionStatement(wrappedSliceExpr));
4067
4075
  } else if (processed.kind === "member") {
4068
4076
  const leftBabel = convertExpression2(processed.leftOddo);
4077
+ const rootNode = findBabelMemberRoot(leftBabel);
4078
+ const wrappedLeftBabel = wrapCallableIds(leftBabel, rootNode);
4069
4079
  const rightBabel = convertExpression2(processed.rightOddo);
4070
4080
  const wrappedRightExpr = wrapCallableIds(rightBabel);
4071
4081
  mutateBodyStmts.push(
4072
4082
  t.expressionStatement(
4073
- t.assignmentExpression("=", leftBabel, wrappedRightExpr)
4083
+ t.assignmentExpression("=", wrappedLeftBabel, wrappedRightExpr)
4074
4084
  )
4075
4085
  );
4076
4086
  } else if (processed.kind === "regular") {
@@ -4283,6 +4293,17 @@ function extractBoundNames(pattern, names = []) {
4283
4293
  }
4284
4294
  return names;
4285
4295
  }
4296
+ function extractMemberRoot(node) {
4297
+ if (node.type === "identifier") return node.name;
4298
+ if (node.type === "memberAccess") return extractMemberRoot(node.object);
4299
+ return null;
4300
+ }
4301
+ function findBabelMemberRoot(node) {
4302
+ if (t.isMemberExpression(node) || t.isOptionalMemberExpression(node)) {
4303
+ return findBabelMemberRoot(node.object);
4304
+ }
4305
+ return node;
4306
+ }
4286
4307
  function generateUniqueId(baseName) {
4287
4308
  let candidate = baseName;
4288
4309
  let i = 2;