public override void ExitString_value_ml([NotNull] MalinaParser.String_value_mlContext context) { var parent = (IValueNode)_nodeStack.Peek(); var open_value = context.OPEN_STRING_ML(); if (open_value != null) { var token = (MalinaToken)open_value.Payload; parent.ValueInterval = new Interval(token.StartIndex, token.StopIndex); parent.ValueIndent = token.TokenIndent; ((DOM.IValueNode)parent).ValueType = ValueType.OpenString; return; } var free_open_value = context.FREE_OPEN_STRING_ML(); if (free_open_value != null) { var token = (MalinaToken)free_open_value.Payload; parent.ValueInterval = new Interval(token.StartIndex, token.StopIndex); parent.ValueIndent = token.TokenIndent; ((DOM.IValueNode)parent).ValueType = ValueType.FreeOpenString; return; } var dqs_ml = context.DQS_ML(); if (dqs_ml != null) { var token = (MalinaToken)dqs_ml.Payload; parent.ValueInterval = new Interval(token.StartIndex + 1, token.StopIndex - 1); parent.ValueIndent = token.TokenIndent; ((DOM.IValueNode)parent).ValueType = ValueType.DoubleQuotedString; return; } var sqs_ml = context.sqs_ml(); if (sqs_ml != null) { SetInterpolationItems(parent, sqs_ml.children); //Set ValueInterval var stopIndex = ((CommonToken)sqs_ml.Stop).Type == MalinaLexer.SQS_END ? ((CommonToken)sqs_ml.Stop).StopIndex - 1: ((CommonToken)sqs_ml.Stop).StopIndex; parent.ValueInterval = new Interval(((CommonToken)sqs_ml.Start).StartIndex + 1, stopIndex); //Set Indent parent.ValueIndent = ((MalinaToken)sqs_ml.children[0].Payload).TokenIndent; //Set Value type to SingleQuotedString ((DOM.IValueNode)parent).ValueType = ValueType.SingleQuotedString; } }
public override void ExitString_value_ml(MalinaParser.String_value_mlContext context) { base.ExitString_value_ml(context); SendInterpolationAliasesAndParametersToNameresolver(); }