private bool CheckTriadOperandSafity(TriadOperand triadOperand) { if (triadOperand.IsLinkToAnotherTriad) { var calculatedTriad = CalculatedTriads .FirstOrDefault(t => t.TriadIndex == int.Parse(triadOperand.Token.Value)); if (calculatedTriad == null) { return(false); } return(true); } if (triadOperand.Token.Lexem == Lexem.DIGIT) { return(true); } if (triadOperand.Token.Lexem == Lexem.VAR) { var variable = Variables.FirstOrDefault(v => v.Name == triadOperand.Token.Value); if (variable != null && variable.IsSafe) { return(true); } return(false); } throw new InvalidOperationException(); }
private string GetTriadOperandValue(TriadOperand operand) { if (operand.IsLinkToAnotherTriad) { return(TriadResults .First(result => result.TriadIndex == int.Parse(operand.Token.Value)) .Value); } if (operand.Token.Lexem == Lexem.VAR) { return(Variables .First(result => result.Name == operand.Token.Value) .Value); } return(operand.Token.Value); }
private string GetTriadOperandValue(TriadOperand triadOperand) { if (triadOperand.IsLinkToAnotherTriad) { return(CalculatedTriads .FirstOrDefault(t => t.TriadIndex == int.Parse(triadOperand.Token.Value))? .Value); } if (triadOperand.Token.Lexem == Lexem.DIGIT) { return(triadOperand.Token.Value); } if (triadOperand.Token.Lexem == Lexem.VAR) { return(Variables.First(v => v.Name == triadOperand.Token.Value).Value); } throw new InvalidOperationException(); }