Ejemplo n.º 1
0
        public static IMaybe <(Block, bool)> OperatorBlock(Value value)
        {
            Verb verb;

            if (value.Type == Value.ValueType.Block)
            {
                var block = (Block)value;
                if (block.Count == 0)
                {
                    return(none <(Block, bool)>());
                }

                verb = regularizeVerb(block[0]);
            }
            else
            {
                var operatorText = value.Text;
                var type         = TwoCharacterOperatorParser.Operator(operatorText);
                RejectNull(type, LOCATION, $"Didn't understand verb {operatorText}");
                var instance = (Verb)Activator.CreateInstance(type);
                verb = regularizeVerb(instance);
            }

            return(OperatorBlock(verb));
        }
Ejemplo n.º 2
0
        public void Operator(string source)
        {
            var type = TwoCharacterOperatorParser.Operator(source);

            Runtime.RejectNull(type, LOCATION, $"Didn't recognize '{source}'");
            var verb = (Verb)Activator.CreateInstance(type);

            block.Add(verb);
        }