internal static bool TryParse(Node parent, Queue <Word> remainingWords, out VariableAssignment assignment) { assignment = null; if (!remainingWords.Peek().Text.StartsWith("$")) { return(false); } var word = remainingWords.Dequeue(); assignment = new VariableAssignment(parent) { Name = word.Text, SourceLine = word.Line }; // remove ':' remainingWords.Dequeue(); Expression expression; if (!Expression.TryParse(assignment, remainingWords, out expression)) { return(false); } // remove ';' remainingWords.Dequeue(); assignment.Expression = expression; return(true); }
internal static bool TryParse(Node parent, Queue <Word> remainingWords, out Script script) { script = new Script(parent); do { MixinDefinition mixinDefinition; if (MixinDefinition.TryParse(script, remainingWords, out mixinDefinition)) { script.Children.Add(mixinDefinition); continue; } VariableAssignment variableAssignment; if (VariableAssignment.TryParse(script, remainingWords, out variableAssignment)) { script.Children.Add(variableAssignment); continue; } Selector selector; if (Selector.TryParse(script, remainingWords, out selector)) { script.Children.Add(selector); continue; } }while (remainingWords.Count > 0); return(true); }
public override Node Clone(Node newParent) { var newAssignment = new VariableAssignment(newParent) { Name = Name, SourceLine = SourceLine }; newAssignment.Expression = (Expression)Expression.Clone(newAssignment.Expression); return(newAssignment); }
internal static bool TryParse(Node parent, Queue<Word> remainingWords, out VariableAssignment assignment) { assignment = null; if (!remainingWords.Peek().Text.StartsWith("$")) { return false; } var word = remainingWords.Dequeue(); assignment = new VariableAssignment(parent) { Name = word.Text, SourceLine = word.Line }; // remove ':' remainingWords.Dequeue(); Expression expression; if (!Expression.TryParse(assignment, remainingWords, out expression)) { return false; } // remove ';' remainingWords.Dequeue(); assignment.Expression = expression; return true; }
public override Node Clone(Node newParent) { var newAssignment = new VariableAssignment(newParent) { Name = Name, SourceLine = SourceLine }; newAssignment.Expression = (Expression)Expression.Clone(newAssignment.Expression); return newAssignment; }