private IEnumerable <IdentifierPart> GetIdentifierParts(string prefix, LessParser.IdentifierContext idContext) { if (!string.IsNullOrEmpty(prefix)) { yield return(new ConstantIdentifierPart(prefix)); } var identifier = idContext.Identifier() ?? idContext.IdentifierAfter(); if (identifier != null) { yield return(new ConstantIdentifierPart(identifier.GetText())); } if (idContext.keywordAsIdentifier() != null) { yield return(new ConstantIdentifierPart(idContext.keywordAsIdentifier().GetText())); } var variableInterpolation = idContext.variableInterpolation(); if (variableInterpolation != null) { yield return(new InterpolatedVariableIdentifierPart(variableInterpolation.identifierVariableName().GetText())); } foreach (var partContext in idContext.identifierPart()) { if (partContext.IdentifierAfter() != null) { yield return(new ConstantIdentifierPart(partContext.IdentifierAfter().GetText())); } if (partContext.identifierVariableName() != null) { yield return(new InterpolatedVariableIdentifierPart(partContext.identifierVariableName().GetText())); } } }
public virtual LessNode VisitIdentifier(LessParser.IdentifierContext context) { throw new System.NotImplementedException(); }
public override LessNode VisitIdentifier(LessParser.IdentifierContext context) { return(new Identifier(GetIdentifierParts(null, context))); }