public final AssignmentExpressionContext assignmentExpression() throws RecognitionException {
		AssignmentExpressionContext _localctx = new AssignmentExpressionContext(_ctx, getState());
		enterRule(_localctx, 48, RULE_assignmentExpression);
		try {
			setState(535);
			switch ( getInterpreter().adaptivePredict(_input,28,_ctx) ) {
			case 1:
				enterOuterAlt(_localctx, 1);
				{
				setState(528); conditionalExpression();

					
				if(declarationOfArray){
					try{
					if(!_localctx.getText().equals(""))  /* error */
					arrayDemention.add(Integer.valueOf(_localctx.getText()));
					if(arrayDemention.size()>1){
						for(int i=1;i<arrayDemention.size();i++){	
							if((arrayDemention.get(i) & -arrayDemention.get(i))!=arrayDemention.get(i)){
								globalLists.get(0).add(_input.getTokenSource().getLine()+"|ARD001");
							}
						}
					}
					}
					catch(NumberFormatException exp){
							/*System.out.println(exp.getStackTrace());*/
						}
					
				}


				}
				break;

			case 2:
				enterOuterAlt(_localctx, 2);
				{
				setState(531); unaryExpression();
				setState(532); assignmentOperator();
				setState(533); assignmentExpression();
				}
				break;
			}
		}
		catch (RecognitionException re) {
			_localctx.exception = re;
			_errHandler.reportError(this, re);
			_errHandler.recover(this, re);
		}
		finally {
			exitRule();
		}
		return _localctx;
	}