コード例 #1
0
ファイル: test16.cs プロジェクト: yallie/refal
		private static PassiveExpression _Quotes(PassiveExpression expression)
		{
			Pattern pattern28 = new Pattern(new SymbolVariable("s.Q"), new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new ExpressionVariable("e.0"), "\\\\".ToCharArray(), "\\\\".ToCharArray(), new ExpressionVariable("e.2"));
			if (pattern28.Match(expression))
			{
				return PassiveExpression.Build(_Quotes(PassiveExpression.Build(pattern28.GetVariable("s.Q"), new OpeningBrace(), pattern28.GetVariable("e.1"), pattern28.GetVariable("e.0"), "\\\\".ToCharArray(), "\\\\".ToCharArray(), new ClosingBrace(), pattern28.GetVariable("e.2"))));
			};

			Pattern pattern29 = new Pattern(new SymbolVariable("s.Q"), new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new ExpressionVariable("e.0"), "\\\\".ToCharArray(), new SymbolVariable("s.Q"), new ExpressionVariable("e.2"));
			if (pattern29.Match(expression))
			{
				return PassiveExpression.Build(_Quotes(PassiveExpression.Build(pattern29.GetVariable("s.Q"), new OpeningBrace(), pattern29.GetVariable("e.1"), pattern29.GetVariable("e.0"), "\\\\".ToCharArray(), pattern29.GetVariable("s.Q"), new ClosingBrace(), pattern29.GetVariable("e.2"))));
			};

			Pattern pattern30 = new Pattern(new SymbolVariable("s.Q"), new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new ExpressionVariable("e.0"), new SymbolVariable("s.Q"), new ExpressionVariable("e.2"));
			if (pattern30.Match(expression))
			{
				return PassiveExpression.Build(new OpeningBrace(), pattern30.GetVariable("e.1"), pattern30.GetVariable("e.0"), new ClosingBrace(), pattern30.GetVariable("e.2"));
			};

			Pattern pattern31 = new Pattern(new SymbolVariable("s.Q"), new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new ExpressionVariable("e.2"));
			if (pattern31.Match(expression))
			{
				return PassiveExpression.Build(new OpeningBrace(), new ClosingBrace(), pattern31.GetVariable("e.1"), pattern31.GetVariable("e.2"));
			};

			throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
		}
コード例 #2
0
        private static PassiveExpression _Order(PassiveExpression expression)
        {
            Pattern pattern2 = new Pattern(new SymbolVariable("s.1"), new SymbolVariable("s.2"));

            if (pattern2.Match(expression))
            {
                expression = PassiveExpression.Build(_PreAlph(PassiveExpression.Build(pattern2.GetVariable("s.1"), pattern2.GetVariable("s.2"))));
                {
                    Pattern pattern3 = new Pattern(true);
                    pattern3.CopyBoundVariables(pattern2);
                    if (pattern3.Match(expression))
                    {
                        return(PassiveExpression.Build(pattern3.GetVariable("s.1"), pattern3.GetVariable("s.2")));
                    }
                    ;

                    Pattern pattern4 = new Pattern(false);
                    pattern4.CopyBoundVariables(pattern2);
                    if (pattern4.Match(expression))
                    {
                        return(PassiveExpression.Build(pattern4.GetVariable("s.2"), pattern4.GetVariable("s.1")));
                    }
                    ;

                    throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
                }
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
        }
コード例 #3
0
        // extract arguments specified as <Function t.1 e.2>
        void GetArguments(PassiveExpression expression, out object arg1, out object arg2)
        {
            var p = new Pattern(new TermVariable("t.1"), new ExpressionVariable("e.2"));

            if (p.Match(expression))
            {
                arg1 = p.GetVariable("t.1");
                arg2 = p.GetVariable("e.2");
                return;
            }

            // can't find match
            throw new RecognitionImpossibleException();
        }
コード例 #4
0
        private static PassiveExpression _Prout__lm(PassiveExpression expression)
        {
            Pattern pattern45 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), "*".ToCharArray(), new ClosingBrace(), new ExpressionVariable("e.2"));

            if (RefalBase.Match(expression, pattern45))
            {
                return(PassiveExpression.Build(_Prout__lm(PassiveExpression.Build(pattern45.GetVariable("e.1"))), _Prout(PassiveExpression.Build("*** *(".ToCharArray(), pattern45.GetVariable("e.2")))));
            }
            ;

            Pattern pattern46 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new ExpressionVariable("e.2"));

            if (RefalBase.Match(expression, pattern46))
            {
                return(PassiveExpression.Build(_Prout__lm(PassiveExpression.Build(pattern46.GetVariable("e.1"))), _Prout(PassiveExpression.Build("*** (".ToCharArray(), pattern46.GetVariable("e.2")))));
            }
            ;

            Pattern pattern47 = new Pattern("$".ToCharArray(), new ExpressionVariable("e.1"));

            if (RefalBase.Match(expression, pattern47))
            {
                return(PassiveExpression.Build(_Prout(PassiveExpression.Build("*** ".ToCharArray(), pattern47.GetVariable("e.1")))));
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + ExpressionToString(expression, 0));
        }
コード例 #5
0
        private static PassiveExpression _Transla(PassiveExpression expression)
        {
            Pattern pattern48 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.ML"), new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new ClosingBrace(), new OpeningBrace(), "(".ToCharArray(), new ExpressionVariable("e.2"), new ClosingBrace());

            if (pattern48.Match(expression))
            {
                return(PassiveExpression.Build(_Transla(PassiveExpression.Build(new OpeningBrace(), pattern48.GetVariable("e.ML"), new OpeningBrace(), pattern48.GetVariable("e.1"), new ClosingBrace(), new OpeningBrace(), new ClosingBrace(), new ClosingBrace(), new OpeningBrace(), pattern48.GetVariable("e.2"), new ClosingBrace()))));
            }
            ;

            Pattern pattern49 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.ML"), new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new OpeningBrace(), new ExpressionVariable("e.2"), new ClosingBrace(), new ClosingBrace(), new OpeningBrace(), ")".ToCharArray(), new ExpressionVariable("e.3"), new ClosingBrace());

            if (pattern49.Match(expression))
            {
                return(PassiveExpression.Build(_Transla(PassiveExpression.Build(new OpeningBrace(), pattern49.GetVariable("e.ML"), new OpeningBrace(), pattern49.GetVariable("e.1"), "(".ToCharArray(), pattern49.GetVariable("e.2"), ")".ToCharArray(), new ClosingBrace(), new ClosingBrace(), new OpeningBrace(), pattern49.GetVariable("e.3"), new ClosingBrace()))));
            }
            ;

            Pattern pattern50 = new Pattern(new OpeningBrace(), new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new ClosingBrace(), new OpeningBrace(), ")".ToCharArray(), new ExpressionVariable("e.2"), new ClosingBrace());

            if (pattern50.Match(expression))
            {
                return(PassiveExpression.Build(_Transla(PassiveExpression.Build(new OpeningBrace(), new OpeningBrace(), pattern50.GetVariable("e.1"), ")(".ToCharArray(), new ClosingBrace(), new ClosingBrace(), new OpeningBrace(), pattern50.GetVariable("e.2"), new ClosingBrace()))));
            }
            ;

            Pattern pattern51 = new Pattern(new OpeningBrace(), new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new ClosingBrace(), new OpeningBrace(), ".]".ToCharArray(), new ClosingBrace());

            if (pattern51.Match(expression))
            {
                return(PassiveExpression.Build(pattern51.GetVariable("e.1"), ")".ToCharArray()));
            }
            ;

            Pattern pattern52 = new Pattern(new OpeningBrace(), new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new ClosingBrace(), new OpeningBrace(), "]".ToCharArray(), new ClosingBrace());

            if (pattern52.Match(expression))
            {
                return(PassiveExpression.Build(pattern52.GetVariable("e.1"), ")e.MR".ToCharArray()));
            }
            ;

            Pattern pattern53 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.ML"), new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new ClosingBrace(), new OpeningBrace(), "]".ToCharArray(), new ClosingBrace());

            if (pattern53.Match(expression))
            {
                return(PassiveExpression.Build(_Ermes(PassiveExpression.Build("ERROR: Unbalanced left parenth. after pointer".ToCharArray()))));
            }
            ;

            Pattern pattern54 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.ML"), new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new ClosingBrace(), new OpeningBrace(), new TermVariable("t.A"), new ExpressionVariable("e.2"), new ClosingBrace());

            if (pattern54.Match(expression))
            {
                return(PassiveExpression.Build(_Transla(PassiveExpression.Build(new OpeningBrace(), pattern54.GetVariable("e.ML"), new OpeningBrace(), pattern54.GetVariable("e.1"), pattern54.GetVariable("t.A"), new ClosingBrace(), new ClosingBrace(), new OpeningBrace(), pattern54.GetVariable("e.2"), new ClosingBrace()))));
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
        }
コード例 #6
0
        private static PassiveExpression _Number(PassiveExpression expression)
        {
            Pattern pattern102 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new OpeningBrace(), new ExpressionVariable("e.N"), new ClosingBrace(), new SymbolVariable("s.X"), new ExpressionVariable("e.2"));

            if (RefalBase.Match(expression, pattern102))
            {
                expression = PassiveExpression.Build(_Type(PassiveExpression.Build(pattern102.GetVariable("s.X"))));
                Pattern pattern103 = new Pattern("D".ToCharArray(), new ExpressionVariable("e.X1"));
                pattern103.CopyBoundVariables(pattern102);
                if (RefalBase.Match(expression, pattern103))
                {
                    return(PassiveExpression.Build(_Number(PassiveExpression.Build(new OpeningBrace(), pattern103.GetVariable("e.1"), new ClosingBrace(), new OpeningBrace(), pattern103.GetVariable("e.N"), pattern103.GetVariable("s.X"), new ClosingBrace(), pattern103.GetVariable("e.2")))));
                }
            }
            ;

            Pattern pattern104 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new OpeningBrace(), new ExpressionVariable("e.N"), new ClosingBrace(), new ExpressionVariable("e.X"));

            if (RefalBase.Match(expression, pattern104))
            {
                return(PassiveExpression.Build(_Parse(PassiveExpression.Build(new OpeningBrace(), pattern104.GetVariable("e.1"), _Numb(PassiveExpression.Build(pattern104.GetVariable("e.N"))), new ClosingBrace(), pattern104.GetVariable("e.X")))));
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + ExpressionToString(expression, 0));
        }
コード例 #7
0
        private static PassiveExpression _Read__in(PassiveExpression expression)
        {
            Pattern pattern8 = new Pattern();

            if (RefalBase.Match(expression, pattern8))
            {
                return(PassiveExpression.Build());
            }
            ;

            Pattern pattern9 = new Pattern(0);

            if (RefalBase.Match(expression, pattern9))
            {
                return(PassiveExpression.Build());
            }
            ;

            Pattern pattern10 = new Pattern(new ExpressionVariable("e.1"));

            if (RefalBase.Match(expression, pattern10))
            {
                return(PassiveExpression.Build(" ".ToCharArray(), pattern10.GetVariable("e.1"), _Read__in(PassiveExpression.Build(_Card(PassiveExpression.Build())))));
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + ExpressionToString(expression, 0));
        }
コード例 #8
0
        private static PassiveExpression _Output(PassiveExpression expression)
        {
            Pattern pattern2 = new Pattern(new OpeningBrace(), new ClosingBrace(), new OpeningBrace(), new SymbolVariable("s.D"), new ClosingBrace());

            if (pattern2.Match(expression))
            {
                return(PassiveExpression.Build(_Output(PassiveExpression.Build(new OpeningBrace(), _Get(PassiveExpression.Build(pattern2.GetVariable("s.D"))), new ClosingBrace(), new OpeningBrace(), pattern2.GetVariable("s.D"), new ClosingBrace()))));
            }
            ;

            Pattern pattern3 = new Pattern(new OpeningBrace(), 0, new ClosingBrace(), new OpeningBrace(), new SymbolVariable("s.D"), new ClosingBrace());

            if (pattern3.Match(expression))
            {
                return(PassiveExpression.Build());
            }
            ;

            Pattern pattern4 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new OpeningBrace(), new SymbolVariable("s.D"), new ClosingBrace());

            if (pattern4.Match(expression))
            {
                return(PassiveExpression.Build(_Prout(PassiveExpression.Build(pattern4.GetVariable("e.1"))), _Output(PassiveExpression.Build(new OpeningBrace(), _Get(PassiveExpression.Build(pattern4.GetVariable("s.D"))), new ClosingBrace(), new OpeningBrace(), pattern4.GetVariable("s.D"), new ClosingBrace()))));
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
        }
コード例 #9
0
ファイル: test04.cs プロジェクト: yallie/refal
        private static PassiveExpression Chpm(PassiveExpression expression)
        {
            Pattern pattern2 = new Pattern("+".ToCharArray(), new ExpressionVariable("e.1"));

            if (RefalBase.Match(expression, pattern2))
            {
                return(PassiveExpression.Build("-".ToCharArray(), Chpm(PassiveExpression.Build(pattern2.GetVariable("e.1")))));
            }
            ;

            Pattern pattern3 = new Pattern(new SymbolVariable("s.1"), new ExpressionVariable("e.2"));

            if (RefalBase.Match(expression, pattern3))
            {
                return(PassiveExpression.Build(pattern3.GetVariable("s.1"), Chpm(PassiveExpression.Build(pattern3.GetVariable("e.2")))));
            }
            ;

            Pattern pattern4 = new Pattern();

            if (RefalBase.Match(expression, pattern4))
            {
                return(PassiveExpression.Build());
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible");
        }
コード例 #10
0
ファイル: test06.cs プロジェクト: yallie/refal
        private static PassiveExpression _RAdd(PassiveExpression expression)
        {
            Pattern pattern2 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new OpeningBrace(), "0".ToCharArray(), new ClosingBrace());

            if (pattern2.Match(expression))
            {
                return(PassiveExpression.Build(pattern2.GetVariable("e.1")));
            }
            ;

            Pattern pattern3 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new OpeningBrace(), new ExpressionVariable("e.2"), "\'".ToCharArray(), new ClosingBrace());

            if (pattern3.Match(expression))
            {
                return(PassiveExpression.Build(_RAdd(PassiveExpression.Build(new OpeningBrace(), pattern3.GetVariable("e.1"), new ClosingBrace(), new OpeningBrace(), pattern3.GetVariable("e.2"), new ClosingBrace())), "\'".ToCharArray()));
            }
            ;

            Pattern pattern4 = new Pattern(new ExpressionVariable("e.1"));

            if (pattern4.Match(expression))
            {
                return(PassiveExpression.Build());
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
        }
コード例 #11
0
ファイル: test08.cs プロジェクト: yallie/refal
        private static PassiveExpression _Output(PassiveExpression expression)
        {
            Pattern pattern2 = new Pattern();

            if (pattern2.Match(expression))
            {
                return(PassiveExpression.Build(_Output(PassiveExpression.Build(_Card(PassiveExpression.Build())))));
            }
            ;

            Pattern pattern3 = new Pattern(0);

            if (pattern3.Match(expression))
            {
                return(PassiveExpression.Build());
            }
            ;

            Pattern pattern4 = new Pattern(new ExpressionVariable("e.1"));

            if (pattern4.Match(expression))
            {
                return(PassiveExpression.Build(_Prout(PassiveExpression.Build(pattern4.GetVariable("e.1"))), _Output(PassiveExpression.Build(_Card(PassiveExpression.Build())))));
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
        }
コード例 #12
0
        private static PassiveExpression RAdd(PassiveExpression expression)
        {
            Pattern pattern2 = new Pattern(new Pattern(new ExpressionVariable("e.1")), new Pattern("0".ToCharArray()));

            if (RefalBase.Match(expression, pattern2))
            {
                return(PassiveExpression.Build(pattern2.GetVariable("e.1")));
            }
            ;

            Pattern pattern3 = new Pattern(new Pattern(new ExpressionVariable("e.1")), new Pattern(new ExpressionVariable("e.2"), "\'".ToCharArray()));

            if (RefalBase.Match(expression, pattern3))
            {
                return(PassiveExpression.Build(RAdd(PassiveExpression.Build(PassiveExpression.CreateSubexpression(pattern3.GetVariable("e.1")), PassiveExpression.CreateSubexpression(pattern3.GetVariable("e.2")))), "\'".ToCharArray()));
            }
            ;

            Pattern pattern4 = new Pattern(new ExpressionVariable("e.1"));

            if (RefalBase.Match(expression, pattern4))
            {
                return(PassiveExpression.Build());
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible");
        }
コード例 #13
0
        private static PassiveExpression _Chpm(PassiveExpression expression)
        {
            Pattern pattern2 = new Pattern("+".ToCharArray(), new ExpressionVariable("e.1"));

            if (pattern2.Match(expression))
            {
                return(PassiveExpression.Build("-".ToCharArray(), _Chpm(PassiveExpression.Build(pattern2.GetVariable("e.1")))));
            }
            ;

            Pattern pattern3 = new Pattern(new SymbolVariable("s.1"), new ExpressionVariable("e.2"));

            if (pattern3.Match(expression))
            {
                return(PassiveExpression.Build(pattern3.GetVariable("s.1"), _Chpm(PassiveExpression.Build(pattern3.GetVariable("e.2")))));
            }
            ;

            Pattern pattern4 = new Pattern();

            if (pattern4.Match(expression))
            {
                return(PassiveExpression.Build());
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
        }
コード例 #14
0
        private static PassiveExpression _Next(PassiveExpression expression)
        {
            Pattern pattern2 = new Pattern();

            if (pattern2.Match(expression))
            {
                expression = PassiveExpression.Build(_Get(PassiveExpression.Build(1)));
                {
                    Pattern pattern3 = new Pattern("*".ToCharArray(), new ExpressionVariable("e.1"));
                    pattern3.CopyBoundVariables(pattern2);
                    if (pattern3.Match(expression))
                    {
                        return(PassiveExpression.Build(_Putz(PassiveExpression.Build(2, "*".ToCharArray(), pattern3.GetVariable("e.1"))), _Next(PassiveExpression.Build())));
                    }
                    ;

                    Pattern pattern4 = new Pattern(new ExpressionVariable("e.1"));
                    pattern4.CopyBoundVariables(pattern2);
                    if (pattern4.Match(expression))
                    {
                        return(PassiveExpression.Build(pattern4.GetVariable("e.1")));
                    }
                    ;

                    throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
                }
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
        }
コード例 #15
0
ファイル: test16.cs プロジェクト: yallie/refal
		private static PassiveExpression _Outform(PassiveExpression expression)
		{
			Pattern pattern68 = new Pattern(new SymbolVariable("s.S"));
			if (pattern68.Match(expression))
			{
				expression = PassiveExpression.Build(_Type(PassiveExpression.Build(pattern68.GetVariable("s.S"))));
				{
					Pattern pattern69 = new Pattern("Wi".ToCharArray(), new ExpressionVariable("e.S1"));
					pattern69.CopyBoundVariables(pattern68);
					if (pattern69.Match(expression))
					{
						return PassiveExpression.Build(_Explode(PassiveExpression.Build(pattern69.GetVariable("s.S"))));
					};

					Pattern pattern70 = new Pattern("N".ToCharArray(), new ExpressionVariable("e.S1"));
					pattern70.CopyBoundVariables(pattern68);
					if (pattern70.Match(expression))
					{
						return PassiveExpression.Build(_Symb(PassiveExpression.Build(pattern70.GetVariable("s.S"))));
					};

					throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
				}
			};

			throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
		}
コード例 #16
0
        private static PassiveExpression _Checkf(PassiveExpression expression)
        {
            Pattern pattern38 = new Pattern("+".ToCharArray());

            if (RefalBase.Match(expression, pattern38))
            {
                return(PassiveExpression.Build("Add"));
            }
            ;

            Pattern pattern39 = new Pattern("-".ToCharArray());

            if (RefalBase.Match(expression, pattern39))
            {
                return(PassiveExpression.Build("Sub"));
            }
            ;

            Pattern pattern40 = new Pattern("*".ToCharArray());

            if (RefalBase.Match(expression, pattern40))
            {
                return(PassiveExpression.Build("Mul"));
            }
            ;

            Pattern pattern41 = new Pattern("/".ToCharArray());

            if (RefalBase.Match(expression, pattern41))
            {
                return(PassiveExpression.Build("Div"));
            }
            ;

            Pattern pattern42 = new Pattern(new SymbolVariable("s.F"));

            if (RefalBase.Match(expression, pattern42))
            {
                expression = PassiveExpression.Build(_Type(PassiveExpression.Build(pattern42.GetVariable("s.F"))));
                Pattern pattern43 = new Pattern("Wi".ToCharArray(), new ExpressionVariable("e.F1"));
                pattern43.CopyBoundVariables(pattern42);
                if (RefalBase.Match(expression, pattern43))
                {
                    return(PassiveExpression.Build(pattern43.GetVariable("s.F")));
                }
            }
            ;

            Pattern pattern44 = new Pattern(new SymbolVariable("s.F"));

            if (RefalBase.Match(expression, pattern44))
            {
                return(PassiveExpression.Build());
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + ExpressionToString(expression, 0));
        }
コード例 #17
0
        public static PassiveExpression _Br(PassiveExpression expression)
        {
            // <Br e.N '=' e.Expr>, where e.N is expression which does not
            // include '=' on the upper level of the bracket's structure
            Pattern pattern = new Pattern(new ExpressionVariable("Key"), '=', new ExpressionVariable("Value"));

            if (pattern.Match(expression))
            {
                PassiveExpression key    = (PassiveExpression)pattern.GetVariable("Key");
                PassiveExpression value  = (PassiveExpression)pattern.GetVariable("Value");
                string            strKey = key.ToString();

                buriedKeys[strKey]   = key;
                buriedValues[strKey] = value;
            }

            throw new RecognitionImpossibleException("<Br e.N '=' e.Expr>: unexpected arguments");
        }
コード例 #18
0
        private static PassiveExpression _Elpar(PassiveExpression expression)
        {
            Pattern pattern38 = new Pattern(new ExpressionVariable("e.1"), new OpeningBrace(), new ExpressionVariable("e.2"), new ClosingBrace(), new ExpressionVariable("e.3"));

            if (pattern38.Match(expression))
            {
                return(PassiveExpression.Build(pattern38.GetVariable("e.1"), pattern38.GetVariable("e.2"), _Elpar(PassiveExpression.Build(pattern38.GetVariable("e.3")))));
            }
            ;

            Pattern pattern39 = new Pattern(new ExpressionVariable("e.1"));

            if (pattern39.Match(expression))
            {
                return(PassiveExpression.Build(pattern39.GetVariable("e.1")));
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
        }
コード例 #19
0
ファイル: test25.cs プロジェクト: yallie/refal
        private static PassiveExpression _Order1(PassiveExpression expression)
        {
            Pattern pattern3 = new Pattern(true, new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new ExpressionVariable("e.2"));

            if (pattern3.Match(expression))
            {
                return(PassiveExpression.Build(pattern3.GetVariable("e.1"), pattern3.GetVariable("e.2")));
            }
            ;

            Pattern pattern4 = new Pattern(false, new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new ExpressionVariable("e.2"));

            if (pattern4.Match(expression))
            {
                return(PassiveExpression.Build(pattern4.GetVariable("e.2"), pattern4.GetVariable("e.1")));
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
        }
コード例 #20
0
ファイル: test07.cs プロジェクト: yallie/refal
        private static PassiveExpression _AddB(PassiveExpression expression)
        {
            Pattern pattern2 = new Pattern(new OpeningBrace(), new ClosingBrace(), new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace());

            if (pattern2.Match(expression))
            {
                return(PassiveExpression.Build(pattern2.GetVariable("e.1")));
            }
            ;

            Pattern pattern3 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new OpeningBrace(), new ClosingBrace());

            if (pattern3.Match(expression))
            {
                return(PassiveExpression.Build(pattern3.GetVariable("e.1")));
            }
            ;

            Pattern pattern4 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), "0".ToCharArray(), new ClosingBrace(), new OpeningBrace(), new ExpressionVariable("e.2"), new SymbolVariable("s.3"), new ClosingBrace());

            if (pattern4.Match(expression))
            {
                return(PassiveExpression.Build(_AddB(PassiveExpression.Build(new OpeningBrace(), pattern4.GetVariable("e.1"), new ClosingBrace(), new OpeningBrace(), pattern4.GetVariable("e.2"), new ClosingBrace())), pattern4.GetVariable("s.3")));
            }
            ;

            Pattern pattern5 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), new SymbolVariable("s.3"), new ClosingBrace(), new OpeningBrace(), new ExpressionVariable("e.2"), "0".ToCharArray(), new ClosingBrace());

            if (pattern5.Match(expression))
            {
                return(PassiveExpression.Build(_AddB(PassiveExpression.Build(new OpeningBrace(), pattern5.GetVariable("e.1"), new ClosingBrace(), new OpeningBrace(), pattern5.GetVariable("e.2"), new ClosingBrace())), pattern5.GetVariable("s.3")));
            }
            ;

            Pattern pattern6 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), "1".ToCharArray(), new ClosingBrace(), new OpeningBrace(), new ExpressionVariable("e.2"), "1".ToCharArray(), new ClosingBrace());

            if (pattern6.Match(expression))
            {
                return(PassiveExpression.Build(_AddB(PassiveExpression.Build(new OpeningBrace(), "1".ToCharArray(), new ClosingBrace(), new OpeningBrace(), _AddB(PassiveExpression.Build(new OpeningBrace(), pattern6.GetVariable("e.1"), new ClosingBrace(), new OpeningBrace(), pattern6.GetVariable("e.2"), new ClosingBrace())), new ClosingBrace())), "0".ToCharArray()));
            }
            ;

            Pattern pattern7 = new Pattern(new ExpressionVariable("e.1"));

            if (pattern7.Match(expression))
            {
                return(PassiveExpression.Build("** error! **".ToCharArray()));
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
        }
コード例 #21
0
ファイル: test16.cs プロジェクト: yallie/refal
		private static PassiveExpression _Last1(PassiveExpression expression)
		{
			Pattern pattern45 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.A"), new SymbolVariable("s.X"), new ExpressionVariable("e.B"), new ClosingBrace(), new ExpressionVariable("e.1"), new SymbolVariable("s.X"), new OpeningBrace(), new ExpressionVariable("e.2"), new ClosingBrace());
			if (pattern45.Match(expression))
			{
				return PassiveExpression.Build(pattern45.GetVariable("e.1"), pattern45.GetVariable("s.X"), new OpeningBrace(), pattern45.GetVariable("e.2"), new ClosingBrace());
			};

			Pattern pattern46 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.A"), new ClosingBrace(), new ExpressionVariable("e.1"), new TermVariable("t.X"), new OpeningBrace(), new ExpressionVariable("e.2"), new ClosingBrace());
			if (pattern46.Match(expression))
			{
				return PassiveExpression.Build(_Last1(PassiveExpression.Build(new OpeningBrace(), pattern46.GetVariable("e.A"), new ClosingBrace(), pattern46.GetVariable("e.1"), new OpeningBrace(), pattern46.GetVariable("t.X"), pattern46.GetVariable("e.2"), new ClosingBrace())));
			};

			Pattern pattern47 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.A"), new ClosingBrace(), new OpeningBrace(), new ExpressionVariable("e.2"), new ClosingBrace());
			if (pattern47.Match(expression))
			{
				return PassiveExpression.Build(new OpeningBrace(), pattern47.GetVariable("e.2"), new ClosingBrace());
			};

			throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
		}
コード例 #22
0
ファイル: test16.cs プロジェクト: yallie/refal
		private static PassiveExpression _Pr__lmb(PassiveExpression expression)
		{
			Pattern pattern41 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new ExpressionVariable("e.2"));
			if (pattern41.Match(expression))
			{
				return PassiveExpression.Build(_Pr__lmb(PassiveExpression.Build(pattern41.GetVariable("e.1"))), _Prout(PassiveExpression.Build("(".ToCharArray(), pattern41.GetVariable("e.2"))));
			};

			Pattern pattern42 = new Pattern("$".ToCharArray(), new ExpressionVariable("e.1"));
			if (pattern42.Match(expression))
			{
				return PassiveExpression.Build();
			};

			throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
		}
コード例 #23
0
        private static PassiveExpression PreAlph(PassiveExpression expression)
        {
            Pattern pattern2 = new Pattern(new SymbolVariable("s.1"), new SymbolVariable("s.1"));

            if (RefalBase.Match(expression, pattern2))
            {
                return(PassiveExpression.Build(true));
            }
            ;

            Pattern pattern3 = new Pattern(new SymbolVariable("s.1"), new SymbolVariable("s.2"));

            if (RefalBase.Match(expression, pattern3))
            {
                return(PassiveExpression.Build(Before(PassiveExpression.Build(pattern3.GetVariable("s.1"), pattern3.GetVariable("s.2"), "In", Alphabet(PassiveExpression.Build())))));
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible");
        }
コード例 #24
0
ファイル: Pattern.cs プロジェクト: mysidia/LiveSplit-Sid
 public void CopyBoundVariables(Pattern pattern)
 {
     foreach (string name in pattern.Variables.Keys)
     {
         if (Variables.ContainsKey(name))
         {
             Variable var = Variables[name];
             var.Value = pattern.GetVariable(name);
             // first occurance of the variable is in another pattern
             var.FirstOccurance = -1;
         }
         else
         {
             // copy bound variable from another pattern
             Variable var = pattern.Variables[name];
             Variables[name]    = var;
             var.FirstOccurance = -1;
         }
     }
 }
コード例 #25
0
        private static PassiveExpression _Trlmb(PassiveExpression expression)
        {
            Pattern pattern55 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new OpeningBrace(), new ExpressionVariable("e.2"), new ClosingBrace(), new ExpressionVariable("e.L"));

            if (pattern55.Match(expression))
            {
                return(PassiveExpression.Build(pattern55.GetVariable("e.1"), ")(".ToCharArray(), _Trlmb(PassiveExpression.Build(new OpeningBrace(), pattern55.GetVariable("e.2"), new ClosingBrace(), pattern55.GetVariable("e.L")))));
            }
            ;

            Pattern pattern56 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace());

            if (pattern56.Match(expression))
            {
                return(PassiveExpression.Build(pattern56.GetVariable("e.1")));
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
        }
コード例 #26
0
        private static PassiveExpression _Lookm0(PassiveExpression expression)
        {
            Pattern pattern11 = new Pattern(new ExpressionVariable("e.1"), "[".ToCharArray(), new ExpressionVariable("e.2"));

            if (pattern11.Match(expression))
            {
                return(PassiveExpression.Build(_Lookm(PassiveExpression.Build(new OpeningBrace(), new ClosingBrace(), pattern11.GetVariable("e.1"), "[".ToCharArray(), pattern11.GetVariable("e.2")))));
            }
            ;

            Pattern pattern12 = new Pattern(new ExpressionVariable("e.1"));

            if (pattern12.Match(expression))
            {
                return(PassiveExpression.Build(pattern12.GetVariable("e.1")));
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
        }
コード例 #27
0
ファイル: test23.cs プロジェクト: yallie/refal
        private static PassiveExpression _PreAlph(PassiveExpression expression)
        {
            Pattern pattern2 = new Pattern(new SymbolVariable("s.1"), new SymbolVariable("s.1"));

            if (pattern2.Match(expression))
            {
                return(PassiveExpression.Build(true));
            }
            ;

            Pattern pattern3 = new Pattern(new SymbolVariable("s.1"), new SymbolVariable("s.2"));

            if (pattern3.Match(expression))
            {
                return(PassiveExpression.Build(_Before(PassiveExpression.Build(pattern3.GetVariable("s.1"), pattern3.GetVariable("s.2"), "In", _Alphabet(PassiveExpression.Build())))));
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
        }
コード例 #28
0
        private static PassiveExpression Trans(PassiveExpression expression)
        {
            Pattern pattern9 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.It"), new ClosingBrace(), new ExpressionVariable("e.1"), new OpeningBrace(), new OpeningBrace(), new ExpressionVariable("e.It"), new ClosingBrace(), new ExpressionVariable("e.Eng"), new ClosingBrace(), new ExpressionVariable("e.2"));

            if (RefalBase.Match(expression, pattern9))
            {
                return(PassiveExpression.Build(pattern9.GetVariable("e.Eng")));
            }
            ;

            Pattern pattern10 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.It"), new ClosingBrace(), new ExpressionVariable("e.1"));

            if (RefalBase.Match(expression, pattern10))
            {
                return(PassiveExpression.Build("***".ToCharArray()));
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible");
        }
コード例 #29
0
ファイル: test16.cs プロジェクト: yallie/refal
		private static PassiveExpression _Id__tail(PassiveExpression expression)
		{
			Pattern pattern32 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace(), new SymbolVariable("s.A"), new ExpressionVariable("e.2"));
			if (pattern32.Match(expression))
			{
				expression = PassiveExpression.Build(_Type(PassiveExpression.Build(pattern32.GetVariable("s.A"))));
				{
					Pattern pattern33 = new Pattern("L".ToCharArray(), new ExpressionVariable("e.3"));
					pattern33.CopyBoundVariables(pattern32);
					if (pattern33.Match(expression))
					{
						return PassiveExpression.Build(_Id__tail(PassiveExpression.Build(new OpeningBrace(), pattern33.GetVariable("e.1"), pattern33.GetVariable("s.A"), new ClosingBrace(), pattern33.GetVariable("e.2"))));
					};

					Pattern pattern34 = new Pattern("D".ToCharArray(), new ExpressionVariable("e.3"));
					pattern34.CopyBoundVariables(pattern32);
					if (pattern34.Match(expression))
					{
						return PassiveExpression.Build(_Id__tail(PassiveExpression.Build(new OpeningBrace(), pattern34.GetVariable("e.1"), pattern34.GetVariable("s.A"), new ClosingBrace(), pattern34.GetVariable("e.2"))));
					};

					Pattern pattern35 = new Pattern(new SymbolVariable("s.T"), new ExpressionVariable("e.3"));
					pattern35.CopyBoundVariables(pattern32);
					if (pattern35.Match(expression))
					{
						return PassiveExpression.Build(new OpeningBrace(), pattern35.GetVariable("e.1"), new ClosingBrace(), pattern35.GetVariable("s.A"), pattern35.GetVariable("e.2"));
					};

					throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
				}
			};

			Pattern pattern37 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.1"), new ClosingBrace());
			if (pattern37.Match(expression))
			{
				return PassiveExpression.Build(new OpeningBrace(), pattern37.GetVariable("e.1"), new ClosingBrace());
			};

			throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
		}
コード例 #30
0
        private static PassiveExpression _Mbprep(PassiveExpression expression)
        {
            Pattern pattern6 = new Pattern(0);

            if (pattern6.Match(expression))
            {
                return(PassiveExpression.Build());
            }
            ;

            Pattern pattern7 = new Pattern(new ExpressionVariable("e.1"));

            if (pattern7.Match(expression))
            {
                expression = PassiveExpression.Build(_Lookm0(PassiveExpression.Build(pattern7.GetVariable("e.1"))));
                {
                    Pattern pattern8 = new Pattern(new OpeningBrace(), new ExpressionVariable("e.A"), new ClosingBrace(), "[".ToCharArray(), new ExpressionVariable("e.B"));
                    pattern8.CopyBoundVariables(pattern7);
                    if (pattern8.Match(expression))
                    {
                        return(PassiveExpression.Build(_Out(PassiveExpression.Build(pattern8.GetVariable("e.A"), _Lookp(PassiveExpression.Build(new OpeningBrace(), new OpeningBrace(), "[".ToCharArray(), new ClosingBrace(), new ClosingBrace(), new OpeningBrace(), pattern8.GetVariable("e.B"), new ClosingBrace()))))));
                    }
                    ;

                    Pattern pattern9 = new Pattern(new ExpressionVariable("e.1"));
                    pattern9.CopyBoundVariables(pattern7);
                    if (pattern9.Match(expression))
                    {
                        return(PassiveExpression.Build(_Putz(PassiveExpression.Build(2, pattern9.GetVariable("e.1"))), _Mbprep(PassiveExpression.Build(_Next(PassiveExpression.Build())))));
                    }
                    ;

                    throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
                }
            }
            ;

            throw new RecognitionImpossibleException("Recognition impossible. Last expression: " + expression.ToString());
        }
コード例 #31
0
ファイル: Pattern.cs プロジェクト: dbremner/irony
 public void CopyBoundVariables(Pattern pattern)
 {
     foreach (string name in pattern.Variables.Keys)
     {
         if (Variables.ContainsKey(name))
         {
             Variable var = Variables[name];
             var.Value = pattern.GetVariable(name);
             // first occurance of the variable is in another pattern
             var.FirstOccurance = -1;
         }
         else
         {
             // copy bound variable from another pattern
             Variable var = pattern.Variables[name];
             Variables[name] = var;
             var.FirstOccurance = -1;
         }
     }
 }
コード例 #32
0
		public PassiveExpression Br(PassiveExpression expression)
		{
			// <Br e.N '=' e.Expr>, where e.N is expression which does not
			// include '=' on the upper level of the bracket's structure
			Pattern pattern = new Pattern(new ExpressionVariable("Key"), '=', new ExpressionVariable("Value"));
			if (pattern.Match(expression))
			{
				var key = (PassiveExpression)pattern.GetVariable("Key");
				var value = (PassiveExpression)pattern.GetVariable("Value");
				var strKey = key.ToString();

				BuriedKeys[strKey] = key;
				BuriedValues[strKey] = value;

				return PassiveExpression.Build();
			}

			throw new RecognitionImpossibleException("<Br e.N '=' e.Expr>: unexpected arguments");
		}
コード例 #33
0
		// extract arguments specified as <Function t.1 e.2>
		void GetArguments(PassiveExpression expression, out object arg1, out object arg2)
		{
			var p = new Pattern(new TermVariable("t.1"), new ExpressionVariable("e.2"));
			if (p.Match(expression))
			{
				arg1 = p.GetVariable("t.1");
				arg2 = p.GetVariable("e.2");
				return;
			}

			// can't find match
			throw new RecognitionImpossibleException();
		}