Beispiel #1
0
        public int MainCLI(string[] args)
        {
            return(CLI.HandleErrors(() =>
            {
                var app = CLI.Parser();

                app.ExecutableName(typeof(Program).GetTypeInfo().Assembly.GetName().Name);
                app.FromAssembly(typeof(Program).GetTypeInfo().Assembly);
                app.HelpText("BLiP Command Line Interface");

                _verbose = app.Switch("v").Alias("verbose").HelpText("Enable verbose output. This is a global switch");

                var tableCmd = app.Command("table");
                _count = tableCmd.Parameter <int>("n").DefaultValue(2).HelpText("Row count");
                _paged = tableCmd.Switch("p").HelpText("Enable paging");
                tableCmd.HelpText("Run a 'table' demo");
                tableCmd.Handler(TableDemo);

                app.Command("progress")
                .HelpText("Run a 'progressbar' demo")
                .Handler(ProgressBarDemo);

                app.Command("spinner")
                .HelpText("Run a 'spinner' demo")
                .Handler(SpinnerDemo);

                app.Command("run")
                .HelpText("Run an 'unconsumed arguments' demo")
                .Handler(UnconsumedArgumentsDemo);

                app.HelpCommand();

                return app.Parse(args).Run();
            }));
        }
Beispiel #2
0
 public VariableBindingScope(
     BindingScope containingScope,
     INamedParameter parameter)
 {
     ContainingScope = containingScope;
     VariableBinding = new VariableBinding(parameter);
     ContainingScope.NestedBindingDeclared(VariableBinding);
 }
Beispiel #3
0
 private static ParameterIL BuildParameter(IParameter parameter)
 {
     return(parameter switch
     {
         INamedParameter namedParameter => new NamedParameterIL(namedParameter.Symbol),
         ISelfParameter selfParameter => new SelfParameterIL(selfParameter.Symbol),
         IFieldParameter fieldParameter => new FieldParameterIL(fieldParameter.ReferencedSymbol),
         _ => throw ExhaustiveMatch.Failed(parameter)
     });
        public bool Select(INamedParameter namedParameter)
        {
            if (null != Selection)
            {
                return(false);
            }

            Selection = namedParameter;
            return(true);
        }
Beispiel #5
0
 private static bool TryGetCoefficientValue(INamedParameter parameter, out double value)
 {
     if (null != parameter && NamedParameter.TryGetDouble(parameter, out value))
     {
         ConvertIfVaild(parameter.Unit, ScaleUnitUnity.Value, ref value);
         return(true);
     }
     value = default(double);
     return(false);
 }
Beispiel #6
0
        private static bool TryGetDouble(INamedParameter parameter, IUnit unit, out double value)
        {
            if (!NamedParameter.TryGetDouble(parameter, out value))
            {
                return(false);
            }

            ConvertIfVaild(parameter.Unit, unit, ref value);
            return(true);
        }
Beispiel #7
0
        private static bool TryCreateGeographicHeightCoordinate(INamedParameter latParam, INamedParameter lonParam, INamedParameter heightParam, IUnit angularUnit, IUnit linearUnit, out GeographicHeightCoordinate result)
        {
            double lat, lon, h;

            if (TryGetDouble(latParam, angularUnit, out lat) | TryGetDouble(lonParam, angularUnit, out lon) | TryGetDouble(heightParam, linearUnit, out h))
            {
                result = new GeographicHeightCoordinate(lat, lon, h);
                return(true);
            }
            result = GeographicHeightCoordinate.Invalid;
            return(false);
        }
 public ParameterData(INamedParameter namedParameter, string normalizedName)
 {
     if (namedParameter == null)
     {
         throw new ArgumentNullException("namedParameter");
     }
     if (String.IsNullOrEmpty(normalizedName))
     {
         throw new ArgumentException("Invalid parameter name", "normalizedName");
     }
     Contract.EndContractBlock();
     NamedParameter = namedParameter;
     NormalizedName = normalizedName;
 }
Beispiel #9
0
 public void Write(INamedParameter entity)
 {
     if (entity == null)
     {
         throw new ArgumentNullException("entity");
     }
     Contract.EndContractBlock();
     Write(WktKeyword.Parameter);
     WriteOpenParenthesis();
     WriteQuoted(FixName(entity.Name).ToLowerInvariant());
     WriteComma();
     WriteValue(entity.Value);
     WriteCloseParenthesis();
 }
Beispiel #10
0
        private static bool TryCreatePoint2(INamedParameter xParam, INamedParameter yParam, IUnit linearUnit, out Point2 result)
        {
            double x, y;

            if (NamedParameter.TryGetDouble(xParam, out x) && NamedParameter.TryGetDouble(yParam, out y))
            {
                if (null != linearUnit)
                {
                    ConvertIfVaild(xParam.Unit, linearUnit, ref x);
                    ConvertIfVaild(yParam.Unit, linearUnit, ref y);
                }
                result = new Point2(x, y);
                return(true);
            }
            result = Point2.Invalid;
            return(false);
        }
Beispiel #11
0
        private static bool TryCreateVector3(INamedParameter xParam, INamedParameter yParam, INamedParameter zParam, IUnit linearUnit, out Vector3 result)
        {
            double x, y, z;

            if (NamedParameter.TryGetDouble(xParam, out x) && NamedParameter.TryGetDouble(yParam, out y) && NamedParameter.TryGetDouble(zParam, out z))
            {
                if (null != linearUnit)
                {
                    ConvertIfVaild(xParam.Unit, linearUnit, ref x);
                    ConvertIfVaild(yParam.Unit, linearUnit, ref y);
                    ConvertIfVaild(zParam.Unit, linearUnit, ref z);
                }
                result = new Vector3(x, y, z);
                return(true);
            }
            result = Vector3.Invalid;
            return(false);
        }
 private static bool TryCreatePoint3(INamedParameter xParam, INamedParameter yParam, INamedParameter zParam, out Point3 result)
 {
     return TryCreatePoint3(xParam, yParam, zParam, null, out result);
 }
Beispiel #13
0
 private static bool TryCreatePoint2(INamedParameter xParam, INamedParameter yParam, out Point2 result)
 {
     return(TryCreatePoint2(xParam, yParam, null, out result));
 }
 private static bool TryCreatePoint2(INamedParameter xParam, INamedParameter yParam, out Point2 result)
 {
     double x, y;
     if (TryGetDouble(xParam, out x) | TryGetDouble(yParam, out y)) {
         result = new Point2(x, y);
         return true;
     }
     result = Point2.Zero;
     return false;
 }
 private static bool TryCreateVector2(INamedParameter xParam, INamedParameter yParam, IUnit linearUnit, out Vector2 result)
 {
     double x, y;
     if (TryGetDouble(xParam, linearUnit, out x) | TryGetDouble(yParam, linearUnit, out y)) {
         result = new Vector2(x, y);
         return true;
     }
     result = Vector2.Zero;
     return false;
 }
 private static bool TryGetDouble(INamedParameter parameter, out double value, double defaultValue = 0)
 {
     if (null != parameter && NamedParameter.TryGetDouble(parameter, out value)) {
         return true;
     }
     value = defaultValue;
     return false;
 }
Beispiel #17
0
 private static bool TryCreateVector3(INamedParameter xParam, INamedParameter yParam, INamedParameter zParam, out Vector3 result)
 {
     return(TryCreateVector3(xParam, yParam, zParam, null, out result));
 }
 private static bool TryGetCoefficientValue(INamedParameter parameter, out double value)
 {
     if (null != parameter && NamedParameter.TryGetDouble(parameter, out value)) {
         ConvertIfVaild(parameter.Unit, ScaleUnitUnity.Value, ref value);
         return true;
     }
     value = default(double);
     return false;
 }
        private static bool TryGetDouble(INamedParameter parameter, IUnit unit, out double value)
        {
            if (!NamedParameter.TryGetDouble(parameter, out value))
                return false;

            ConvertIfVaild(parameter.Unit, unit, ref value);
            return true;
        }
 private static bool TryCreateGeographicCoordinate(INamedParameter latParam, INamedParameter lonParam, out GeographicCoordinate result)
 {
     double lat, lon;
     if (TryGetDouble(latParam, OgcAngularUnit.DefaultRadians, out lat) | TryGetDouble(lonParam, OgcAngularUnit.DefaultRadians, out lon)) {
         result = new GeographicCoordinate(lat, lon);
         return true;
     }
     result = GeographicCoordinate.Zero;
     return false;
 }
 private static bool TryGetDouble(INamedParameter parameter, IUnit unit, out double value, double defaultValue = 0)
 {
     if (null != parameter && NamedParameter.TryGetDouble(parameter, out value)) {
         return TryConvert(parameter.Unit, unit, ref value);
     }
     value = defaultValue;
     return false;
 }
Beispiel #22
0
 /// <summary>
 /// 현재 개체가 동일한 형식의 다른 개체와 같은지 여부를 나타냅니다.
 /// </summary>
 /// <returns>
 /// 현재 개체가 <paramref name="other"/> 매개 변수와 같으면 true이고, 그렇지 않으면 false입니다.
 /// </returns>
 /// <param name="other">이 개체와 비교할 개체입니다.</param>
 public bool Equals(INamedParameter other)
 {
     return((other != null) && GetHashCode().Equals(other.GetHashCode()));
 }
 private static bool TryCreatePoint2(INamedParameter xParam, INamedParameter yParam, IUnit linearUnit, out Point2 result)
 {
     double x, y;
     if (NamedParameter.TryGetDouble(xParam, out x) && NamedParameter.TryGetDouble(yParam, out y)) {
         if (null != linearUnit) {
             ConvertIfVaild(xParam.Unit, linearUnit, ref x);
             ConvertIfVaild(yParam.Unit, linearUnit, ref y);
         }
         result = new Point2(x, y);
         return true;
     }
     result = Point2.Invalid;
     return false;
 }
 private static bool TryCreateGeographicHeightCoordinate(INamedParameter latParam, INamedParameter lonParam, INamedParameter heightParam, IUnit angularUnit, IUnit linearUnit, out GeographicHeightCoordinate result)
 {
     double lat, lon, h;
     if (TryGetDouble(latParam, angularUnit, out lat) | TryGetDouble(lonParam, angularUnit, out lon) | TryGetDouble(heightParam, linearUnit, out h)) {
         result = new GeographicHeightCoordinate(lat, lon, h);
         return true;
     }
     result = GeographicHeightCoordinate.Invalid;
     return false;
 }
 /// <summary>
 /// 현재 개체가 동일한 형식의 다른 개체와 같은지 여부를 나타냅니다.
 /// </summary>
 /// <returns>
 /// 현재 개체가 <paramref name="other"/> 매개 변수와 같으면 true이고, 그렇지 않으면 false입니다.
 /// </returns>
 /// <param name="other">이 개체와 비교할 개체입니다.</param>
 public bool Equals(INamedParameter other) {
     return (other != null) && GetHashCode().Equals(other.GetHashCode());
 }
 private static bool TryCreateVector3(INamedParameter xParam, INamedParameter yParam, INamedParameter zParam, out Vector3 result)
 {
     return TryCreateVector3(xParam, yParam, zParam, null, out result);
 }
 private static bool TryCreateVector3(INamedParameter xParam, INamedParameter yParam, INamedParameter zParam, IUnit linearUnit, out Vector3 result)
 {
     double x, y, z;
     if (NamedParameter.TryGetDouble(xParam, out x) && NamedParameter.TryGetDouble(yParam, out y) && NamedParameter.TryGetDouble(zParam, out z)) {
         if (null != linearUnit) {
             ConvertIfVaild(xParam.Unit, linearUnit, ref x);
             ConvertIfVaild(yParam.Unit, linearUnit, ref y);
             ConvertIfVaild(zParam.Unit, linearUnit, ref z);
         }
         result = new Vector3(x, y, z);
         return true;
     }
     result = Vector3.Invalid;
     return false;
 }
 public VariableBinding(INamedParameter parameter)
 {
     MutableBinding = parameter.Symbol.IsMutableBinding;
     Name           = parameter.Symbol.Name;
     NameSpan       = parameter.Span;
 }