protected bool ProcessCalculationPartIfPossible <T>(CalculationPart toProcess, Action <T> processor) where T : CalculationPart { if (!IsCalculationPart <T>(toProcess)) { return(false); } processor(toProcess.As <T>()); return(true); }
public void AddPart(CalculationPart part) { stack.Push(part); }
void ReplacePart(CalculationPart part) { RemoveLastPart(); AddPart(part); }
protected bool IsCalculationPart <T>(CalculationPart toProcess) where T : CalculationPart { return(toProcess is T); }
protected void AddToOutput(CalculationPart toAdd) { output.Add(toAdd); }
public abstract void ProcessCharacter(CalculationPart toProcess);