public final void statement() throws RecognitionException {
		ParserRuleReturnScope labelfield1 =null;

		try {
			// C:\\Users\\Shreeprabha\\Documents\\GitHub\\CecilRPi\\src\\org\\raspberrypi\\cecil\\model\\grammar\\Cecil.g:140:3: ( ( '.' labelfield )? mnemonicdata )
			// C:\\Users\\Shreeprabha\\Documents\\GitHub\\CecilRPi\\src\\org\\raspberrypi\\cecil\\model\\grammar\\Cecil.g:140:5: ( '.' labelfield )? mnemonicdata
			{
			// C:\\Users\\Shreeprabha\\Documents\\GitHub\\CecilRPi\\src\\org\\raspberrypi\\cecil\\model\\grammar\\Cecil.g:140:5: ( '.' labelfield )?
			int alt4=2;
			int LA4_0 = input.LA(1);
			if ( (LA4_0==8) ) {
				alt4=1;
			}
			switch (alt4) {
				case 1 :
					// C:\\Users\\Shreeprabha\\Documents\\GitHub\\CecilRPi\\src\\org\\raspberrypi\\cecil\\model\\grammar\\Cecil.g:140:6: '.' labelfield
					{
					match(input,8,FOLLOW_8_in_statement99); 
					pushFollow(FOLLOW_labelfield_in_statement101);
					labelfield1=labelfield();
					state._fsp--;

					 /* filling labelfield hashmap */
					    if(labelfield.containsKey((labelfield1!=null?input.toString(labelfield1.start,labelfield1.stop):null))) throw new RecognitionException();
					    else labelfield.put(((labelfield1!=null?input.toString(labelfield1.start,labelfield1.stop):null)),pointer);
					  
					}
					break;

			}

			pushFollow(FOLLOW_mnemonicdata_in_statement114);
			mnemonicdata();
			state._fsp--;

			}

		}

		  /**
		  * Rulecatch implicitly invoked by the parser. The error is appended to the StreamOutputError list. 
		  */
		     catch (RecognitionException e) {  
		             String msg = getErrorMessage(e, tokenNames);
		             this.stream.getErrors().add(new OutputError(e.line, msg));    
		           
		             System.out.println(e.line + " : " + msg);  
		     } 

		finally {
			// do for sure before leaving
		}
	}