コード例 #1
0
        private IEnumerable <Variable> AvailableLinearVars(Absy absy)
        {
            HashSet <Variable> availableVars =
                new HashSet <Variable>(linearTypeChecker.AvailableLinearVars(absyMap[absy]));

            // A bit hackish, since GlobalVariableLayerRange and LocalVariableIntroLayer return maximum layer range
            // respectively minimum layer if called on non-global respectively non-local variable.
            availableVars.RemoveWhere(v =>
                                      !civlTypeChecker.GlobalVariableLayerRange(v).Contains(layerNum) ||
                                      layerNum < civlTypeChecker.LocalVariableIntroLayer(v)
                                      );

            return(availableVars);
        }