コード例 #1
0
ファイル: LScript.cs プロジェクト: meatRay/Gale
        private static LScript ImportMetaTags(LScript meta_tag)
        {
            if (meta_tag.Word != "#IMPORT")
            {
                return(null);
            }
            string file_name = meta_tag as TokenLS <string>;

            if (file_name == null)
            {
                return(null);
            }
            CreateFrom(File.ReadAllText(file_name));
            return(null);
        }
コード例 #2
0
ファイル: LScript.cs プロジェクト: meatRay/Gale
        private static LScript DoMetaMath(LScript meta_tag)
        {
            if (meta_tag.Word != "#MATH")
            {
                return(null);
            }
            var    meta_complex = meta_tag as ComplexLS;
            double sum          = 0.0;
            string name         = null;

            foreach (var script in meta_complex.SubRunes)
            {
                sum = DoMath(script, sum, out string fnd_name);
                if (fnd_name != string.Empty)
                {
                    name = fnd_name;
                }
            }
            return(new TokenLS <double>(name, sum));
        }
コード例 #3
0
ファイル: LScript.cs プロジェクト: meatRay/Gale
        private static double DoMath(LScript operation, double sum, out string found_name)
        {
            var tok = operation as TokenLS <double>;

            found_name = string.Empty;
            switch (operation.Word)
            {
            case "IS": return(tok.Value);

            case "MINUS": return(sum - tok.Value);

            case "PLUS": return(sum + tok.Value);

            case "DIVIDE": return(sum - tok.Value);

            case "TIMES": return(sum + tok.Value);

            default:
                found_name = operation.Word;
                return(sum);
            }
        }