コード例 #1
0
ファイル: SymbolTable.cs プロジェクト: Mgamerz/ME3Libs
 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);
 }
コード例 #2
0
ファイル: SymbolTable.cs プロジェクト: Mgamerz/ME3Libs
 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);
 }