Beispiel #1
0
        public static Pattern getFunctionCall()
        {
            //PatternLinkedWith
            CompoundPattern _ParaList = new CompoundPattern();
            {
                CompoundPattern _ParaDotEnd = new CompoundPattern();
                _ParaDotEnd.A             = new StringPattern(",");
                _ParaDotEnd.B             = getNormalTokenPattern();
                _ParaDotEnd.eOperatorType = Operator.Operator.eType.eLink;

                _ParaList.A             = getNormalTokenPattern();
                _ParaList.eOperatorType = Operator.Operator.eType.eLink;
                var listDotEnd = new ListPattern();
                listDotEnd._pattern = _ParaDotEnd;
                _ParaList.B         = listDotEnd;
            }

            CompoundPattern nullOrParaList = new CompoundPattern();

            nullOrParaList.A             = null;
            nullOrParaList.B             = _ParaList;
            nullOrParaList.eOperatorType = Operator.Operator.eType.eOr;

            CompoundPatternList FunctionCall = new CompoundPatternList();

            FunctionCall.eOperatorType = Operator.Operator.eType.eLink;
            FunctionCall._patterns.Add(getNormalTokenPattern());
            FunctionCall._patterns.Add(new StringPattern("("));
            FunctionCall._patterns.Add(nullOrParaList);
            FunctionCall._patterns.Add(new StringPattern(")"));
            return(FunctionCall);
        }
Beispiel #2
0
        public static Pattern getPropertyDefine()
        {
            CompoundPattern equle = new CompoundPattern();

            equle.A             = new StringPattern("=");
            equle.B             = getExpresionPattern();
            equle.eOperatorType = Operator.Operator.eType.eLink;

            CompoundPattern nullOrEaule = new CompoundPattern();

            nullOrEaule.A             = null;
            nullOrEaule.B             = equle;
            nullOrEaule.eOperatorType = Operator.Operator.eType.eOr;

            CompoundPatternList Pattern1 = new CompoundPatternList();

            Pattern1.eOperatorType = Operator.Operator.eType.eLink;
            Pattern1._patterns.Add(getPropertyModifierPattern());
            Pattern1._patterns.Add(getTypePattern());
            Pattern1._patterns.Add(PropertyName());
            Pattern1._patterns.Add(nullOrEaule);
            Pattern1._patterns.Add(new StringPattern(";"));
            //暂时不考虑赋值操作

            return(Pattern1);
        }
Beispiel #3
0
        public static Pattern getExpresionPattern()
        {
            throw new NotImplementedException();
            CompoundPatternList UnitPatterns = new CompoundPatternList();

            UnitPatterns.eOperatorType = Operator.Operator.eType.eOr;
            UnitPatterns._patterns.Add(getNormalTokenPattern());
            UnitPatterns._patterns.Add(getFunctionCall());
        }
Beispiel #4
0
        public static Pattern getNameSpacePattern(ListPattern ClassOrNameSpaceList)
        {
            CompoundPatternList namespacePattern = new CompoundPatternList();

            namespacePattern.eOperatorType = Operator.Operator.eType.eLink;
            namespacePattern._patterns.Add(new StringPattern("namespace"));
            namespacePattern._patterns.Add(getNameSpaceNamePattern());
            namespacePattern._patterns.Add(new StringPattern("{"));
            namespacePattern._patterns.Add(ClassOrNameSpaceList);
            //暂时卡在嵌套定义上 namespace or class
            namespacePattern._patterns.Add(new StringPattern("}"));
            return(namespacePattern);
        }
Beispiel #5
0
        public static Pattern getPropertyModifierPattern()
        {
            CompoundPatternList ModifierPattern = new CompoundPatternList();

            ModifierPattern.eOperatorType = Operator.Operator.eType.eOr;
            ModifierPattern._patterns.Add(new StringPattern("public"));
            ModifierPattern._patterns.Add(new StringPattern("private"));
            ModifierPattern._patterns.Add(new StringPattern("protected"));
            FreeCombination modifierPattern = new FreeCombination();

            modifierPattern._patterns.Add(new StringPattern("static"));
            modifierPattern._patterns.Add(ModifierPattern);
            return(modifierPattern);
        }
Beispiel #6
0
        public static Pattern getClassPattern()
        {
            CompoundPatternList classPattern = new CompoundPatternList();

            classPattern.eOperatorType = Operator.Operator.eType.eLink;
            classPattern._patterns.Add(getClassModifierPattern());
            classPattern._patterns.Add(new StringPattern("class"));
            classPattern._patterns.Add(getNormalTokenPattern());
            classPattern._patterns.Add(new StringPattern("{"));
            //属性定义,函数定义,表达式,句子

            classPattern._patterns.Add(getPropertyDefineOrFunctionDefineList());
            classPattern._patterns.Add(new StringPattern("}"));
            return(classPattern);
        }