예제 #1
0
    public void print(string action, string[] words, RihaNode[] previuseActionResult)
    {
        string printPattern = @"\s*print\s*";

        if (MatchesRegex(action, printPattern))
        {
            RihaNode node  = previuseActionResult[previuseActionResult.Length - 1];
            string   value = node.GetString();
            codeOutput += value + "\n";
        }
    }
예제 #2
0
    public RihaNode equal(RihaNode[] parameters)
    {
        bool     ret            = false;
        RihaNode comperisonNode = parameters[parameters.Length - 1];

        if (comperisonNode.GetNodeType() == GetNodeType())
        {
            if (comperisonNode.GetString() == GetString())
            {
                ret = true;
            }
        }
        return(new RihaNode(ValueType.boolean, ret));
    }
예제 #3
0
 public void Add(RihaNode addNode)
 {
     if (type == ValueType.number)
     {
         float add      = addNode.GetNodeType() == ValueType.number ? RihaNode.GetNumeric(addNode.GetValue()) : 0;
         float newValue = RihaNode.GetNumeric(value) + add;
         value = newValue.ToString();
     }
     else if (type == ValueType.text)
     {
         value += addNode.GetString();
     }
     else if (type == ValueType.array)
     {
         ((List <RihaNode>)value).Add(addNode);
     }
 }