public OperatorDeclaration GetOperator(OperatorDeclaration sig) { if (sig.Type == ASTNodeType.InfixOperator) { return(Operators.First(opdecl => opdecl.Value.Type == ASTNodeType.InfixOperator && sig.IdenticalSignature((opdecl.Value as InOpDeclaration))).Value); } else if (sig.Type == ASTNodeType.PrefixOperator) { return(Operators.First(opdecl => opdecl.Value.Type == ASTNodeType.PrefixOperator && sig.IdenticalSignature((opdecl.Value as PreOpDeclaration))).Value); } else if (sig.Type == ASTNodeType.PostfixOperator) { return(Operators.First(opdecl => opdecl.Value.Type == ASTNodeType.PostfixOperator && sig.IdenticalSignature((opdecl.Value as PostOpDeclaration))).Value); } return(null); }
public bool OperatorSignatureExists(OperatorDeclaration sig) { if (sig.Type == ASTNodeType.InfixOperator) { return(Operators.Any(opdecl => opdecl.Value.Type == ASTNodeType.InfixOperator && sig.IdenticalSignature((opdecl.Value as InOpDeclaration)))); } else if (sig.Type == ASTNodeType.PrefixOperator) { return(Operators.Any(opdecl => opdecl.Value.Type == ASTNodeType.PrefixOperator && sig.IdenticalSignature((opdecl.Value as PreOpDeclaration)))); } else if (sig.Type == ASTNodeType.PostfixOperator) { return(Operators.Any(opdecl => opdecl.Value.Type == ASTNodeType.PostfixOperator && sig.IdenticalSignature((opdecl.Value as PostOpDeclaration)))); } return(false); }