コード例 #1
0
 List <Token> getRightOp(object statment)
 {
     try //для инициализации массива
     {
         ArrayAssignment arrayAssignment = (ArrayAssignment)statment;
         _isMathRight = false;
         return(getArrayInitializtionList(arrayAssignment));
     }
     catch //для математического выражения
     {
         MathStatment mathStatment = (MathStatment)statment;
         _isMathRight = true;
         return(getMathExpression(mathStatment));
     }
 }
コード例 #2
0
        List <Token> getArrayInitializtionList(ArrayAssignment arrayAssignmnent)
        {
            List <Token> tokens = new List <Token>();

            foreach (Token token in arrayAssignmnent.getTokensList())
            {
                tokens.Add(token);
            }
            SemanticAnalizer.checkVarible(_leftOp.value);
            SemanticAnalizer.checkInitEmptyArray(_leftOp.value, tokens.Count);
            SemanticAnalizer.checkIsLengthArrayEqual(_leftOp.value, tokens.Count);

            if (_isArrayElementLeft)
            {
                SemanticAnalizer.incompatibleTypes();
            }
            else
            {
                SemanticAnalizer.checkCompareTypes(_leftOp.value, Constants.INTARRAY);
            }

            return(tokens);
        }
コード例 #3
0
ファイル: Visitor.cs プロジェクト: licar/syntax
 static public string visit(ArrayAssignment arrayAssignment)
 {
     return(Constants.ARRAY_ASSIGNMENT);
 }