Beispiel #1
0
        /// <summary>
        /// 構文タイプ3の評価
        /// </summary>
        /// <param name="node">Syntax3Node</param>
        /// <returns>解析結果のSyntaxDataクラス</returns>
        public override object Visit(Syntax3Node node)
        {
            SyntaxData returnData = new SyntaxData();

            //構文情報を登録する
            returnData.Distance   = nowDistance;
            returnData.MapElement = node.MapElementNames;
            returnData.Key        = Visit(node.Key).ToString();
            returnData.Function   = node.FunctionName;
            foreach (string key in node.Arguments.Keys)
            {
                if (node.Arguments[key] != null)
                {
                    returnData.Arguments.Add(key, Visit(node.Arguments[key]));
                }
                else
                {
                    returnData.Arguments.Add(key, null);
                }
            }

            return(returnData);
        }
Beispiel #2
0
 public abstract T Visit(Syntax3Node node);