Esempio n. 1
0
 /// <summary>
 /// 文字列 => トークン => 定義/適用した関数リスト
 /// </summary>
 /// <returns>関数の定義/適用結果リスト</returns>
 private InterpretResult Interpret()
 {
     try
     {
         var tokenList          = _Rule.TextToTokens(Input);                       //文字列をトークンリストに変換
         var tokenWithCountList = TokenWithCount.CountContinuousTokens(tokenList); //連続トークンをカウント
         return(InterpretFromTokenWithCounts(_FuncStack, tokenWithCountList));     //現スタックに対して連続トークンを解釈
     }
     catch (GllException e)
     {
         System.Diagnostics.Debug.WriteLine(e.Message + "\n" + e.StackTrace);
         System.Diagnostics.Debug.WriteLine("");
         throw;
     }
 }
Esempio n. 2
0
        /// <summary>
        /// Grass風言語ソースコードを可視化言語に変換
        /// </summary>
        /// <param name="source"></param>
        /// <returns></returns>
        public static string GllToVisualized(string source, BaseRule rule)
        {
            var il = Visualization.VisualizedLanguage.ToVisualizedLanguage(
                TokenWithCount.CountContinuousTokens(
                    rule.TextToTokens(
                        source)
                    ).ToArray());
            StringBuilder sb = new StringBuilder();

            foreach (var line in il)
            {
                sb.AppendLine(line.Line);
            }
            return(sb.ToString());
        }