All Downloads are FREE. Search and download functionalities are using the official Maven repository.

rapture.generated.JSONParser Maven / Gradle / Ivy

The newest version!
// $ANTLR 3.5.2 /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g 2016-05-03 11:53:58

package rapture.generated;
 
import java.util.regex.Pattern;
 


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

import org.antlr.runtime.tree.*;


@SuppressWarnings("all")
public class JSONParser extends Parser {
	public static final String[] tokenNames = new String[] {
		"", "", "", "", "ARRAY", "COMMA", "Digit", "EscapeSequence", 
		"Exponent", "FALSE", "FIELD", "HexDigit", "NULL", "NUMBER", "Number", 
		"OBJECT", "STRING", "String", "TRUE", "UnicodeEscape", "WS", "':'", "'['", 
		"']'", "'false'", "'null'", "'true'", "'{'", "'}'"
	};
	public static final int EOF=-1;
	public static final int T__21=21;
	public static final int T__22=22;
	public static final int T__23=23;
	public static final int T__24=24;
	public static final int T__25=25;
	public static final int T__26=26;
	public static final int T__27=27;
	public static final int T__28=28;
	public static final int ARRAY=4;
	public static final int COMMA=5;
	public static final int Digit=6;
	public static final int EscapeSequence=7;
	public static final int Exponent=8;
	public static final int FALSE=9;
	public static final int FIELD=10;
	public static final int HexDigit=11;
	public static final int NULL=12;
	public static final int NUMBER=13;
	public static final int Number=14;
	public static final int OBJECT=15;
	public static final int STRING=16;
	public static final int String=17;
	public static final int TRUE=18;
	public static final int UnicodeEscape=19;
	public static final int WS=20;

	// delegates
	public Parser[] getDelegates() {
		return new Parser[] {};
	}

	// delegators


	public JSONParser(TokenStream input) {
		this(input, new RecognizerSharedState());
	}
	public JSONParser(TokenStream input, RecognizerSharedState state) {
		super(input, state);
	}

	protected TreeAdaptor adaptor = new CommonTreeAdaptor();

	public void setTreeAdaptor(TreeAdaptor adaptor) {
		this.adaptor = adaptor;
	}
	public TreeAdaptor getTreeAdaptor() {
		return adaptor;
	}
	@Override public String[] getTokenNames() { return JSONParser.tokenNames; }
	@Override public String getGrammarFileName() { return "/Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g"; }


	protected void mismatch(IntStream input, int ttype, BitSet follow)
	throws RecognitionException
	{
	throw new MismatchedTokenException(ttype, input);
	}
	public Object recoverFromMismatchedSet(IntStream input,
	RecognitionException e,
	BitSet follow)
	throws RecognitionException
	{
	throw e;
	}


	public static class parse_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "parse"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:49:1: parse : value EOF -> value ;
	public final JSONParser.parse_return parse() throws RecognitionException {
		JSONParser.parse_return retval = new JSONParser.parse_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token EOF2=null;
		ParserRuleReturnScope value1 =null;

		Object EOF2_tree=null;
		RewriteRuleTokenStream stream_EOF=new RewriteRuleTokenStream(adaptor,"token EOF");
		RewriteRuleSubtreeStream stream_value=new RewriteRuleSubtreeStream(adaptor,"rule value");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:49:7: ( value EOF -> value )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:50:5: value EOF
			{
			pushFollow(FOLLOW_value_in_parse115);
			value1=value();
			state._fsp--;

			stream_value.add(value1.getTree());
			EOF2=(Token)match(input,EOF,FOLLOW_EOF_in_parse117);  
			stream_EOF.add(EOF2);

			// AST REWRITE
			// elements: value
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 50:15: -> value
			{
				adaptor.addChild(root_0, stream_value.nextTree());
			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "parse"


	public static class value_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "value"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:52:1: value : ( string | number | object | array | 'true' -> TRUE | 'false' -> FALSE | 'null' -> NULL );
	public final JSONParser.value_return value() throws RecognitionException {
		JSONParser.value_return retval = new JSONParser.value_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token string_literal7=null;
		Token string_literal8=null;
		Token string_literal9=null;
		ParserRuleReturnScope string3 =null;
		ParserRuleReturnScope number4 =null;
		ParserRuleReturnScope object5 =null;
		ParserRuleReturnScope array6 =null;

		Object string_literal7_tree=null;
		Object string_literal8_tree=null;
		Object string_literal9_tree=null;
		RewriteRuleTokenStream stream_24=new RewriteRuleTokenStream(adaptor,"token 24");
		RewriteRuleTokenStream stream_25=new RewriteRuleTokenStream(adaptor,"token 25");
		RewriteRuleTokenStream stream_26=new RewriteRuleTokenStream(adaptor,"token 26");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:54:5: ( string | number | object | array | 'true' -> TRUE | 'false' -> FALSE | 'null' -> NULL )
			int alt1=7;
			switch ( input.LA(1) ) {
			case String:
				{
				alt1=1;
				}
				break;
			case Number:
				{
				alt1=2;
				}
				break;
			case 27:
				{
				alt1=3;
				}
				break;
			case 22:
				{
				alt1=4;
				}
				break;
			case 26:
				{
				alt1=5;
				}
				break;
			case 24:
				{
				alt1=6;
				}
				break;
			case 25:
				{
				alt1=7;
				}
				break;
			default:
				NoViableAltException nvae =
					new NoViableAltException("", 1, 0, input);
				throw nvae;
			}
			switch (alt1) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:54:7: string
					{
					root_0 = (Object)adaptor.nil();


					pushFollow(FOLLOW_string_in_value139);
					string3=string();
					state._fsp--;

					adaptor.addChild(root_0, string3.getTree());

					}
					break;
				case 2 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:55:7: number
					{
					root_0 = (Object)adaptor.nil();


					pushFollow(FOLLOW_number_in_value147);
					number4=number();
					state._fsp--;

					adaptor.addChild(root_0, number4.getTree());

					}
					break;
				case 3 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:56:7: object
					{
					root_0 = (Object)adaptor.nil();


					pushFollow(FOLLOW_object_in_value155);
					object5=object();
					state._fsp--;

					adaptor.addChild(root_0, object5.getTree());

					}
					break;
				case 4 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:57:7: array
					{
					root_0 = (Object)adaptor.nil();


					pushFollow(FOLLOW_array_in_value163);
					array6=array();
					state._fsp--;

					adaptor.addChild(root_0, array6.getTree());

					}
					break;
				case 5 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:58:7: 'true'
					{
					string_literal7=(Token)match(input,26,FOLLOW_26_in_value171);  
					stream_26.add(string_literal7);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (Object)adaptor.nil();
					// 58:14: -> TRUE
					{
						adaptor.addChild(root_0, (Object)adaptor.create(TRUE, "TRUE"));
					}


					retval.tree = root_0;

					}
					break;
				case 6 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:59:7: 'false'
					{
					string_literal8=(Token)match(input,24,FOLLOW_24_in_value183);  
					stream_24.add(string_literal8);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (Object)adaptor.nil();
					// 59:15: -> FALSE
					{
						adaptor.addChild(root_0, (Object)adaptor.create(FALSE, "FALSE"));
					}


					retval.tree = root_0;

					}
					break;
				case 7 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:60:7: 'null'
					{
					string_literal9=(Token)match(input,25,FOLLOW_25_in_value195);  
					stream_25.add(string_literal9);

					// AST REWRITE
					// elements: 
					// token labels: 
					// rule labels: retval
					// token list labels: 
					// rule list labels: 
					// wildcard labels: 
					retval.tree = root_0;
					RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

					root_0 = (Object)adaptor.nil();
					// 60:14: -> NULL
					{
						adaptor.addChild(root_0, (Object)adaptor.create(NULL, "NULL"));
					}


					retval.tree = root_0;

					}
					break;

			}
			retval.stop = input.LT(-1);

			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "value"


	public static class string_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "string"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:63:1: string : String -> ^( STRING String ) ;
	public final JSONParser.string_return string() throws RecognitionException {
		JSONParser.string_return retval = new JSONParser.string_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token String10=null;

		Object String10_tree=null;
		RewriteRuleTokenStream stream_String=new RewriteRuleTokenStream(adaptor,"token String");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:63:9: ( String -> ^( STRING String ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:63:11: String
			{
			String10=(Token)match(input,String,FOLLOW_String_in_string214);  
			stream_String.add(String10);

			// AST REWRITE
			// elements: String
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 64:7: -> ^( STRING String )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:64:10: ^( STRING String )
				{
				Object root_1 = (Object)adaptor.nil();
				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(STRING, "STRING"), root_1);
				adaptor.addChild(root_1, stream_String.nextNode());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "string"


	public static class number_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "number"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:72:1: number : n= Number {...}? ( Exponent )? -> ^( NUMBER Number ( Exponent )? ) ;
	public final JSONParser.number_return number() throws RecognitionException {
		JSONParser.number_return retval = new JSONParser.number_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token n=null;
		Token Exponent11=null;

		Object n_tree=null;
		Object Exponent11_tree=null;
		RewriteRuleTokenStream stream_Number=new RewriteRuleTokenStream(adaptor,"token Number");
		RewriteRuleTokenStream stream_Exponent=new RewriteRuleTokenStream(adaptor,"token Exponent");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:72:9: (n= Number {...}? ( Exponent )? -> ^( NUMBER Number ( Exponent )? ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:72:11: n= Number {...}? ( Exponent )?
			{
			n=(Token)match(input,Number,FOLLOW_Number_in_number250);  
			stream_Number.add(n);

			if ( !((Pattern.matches("(0|(-?[1-9]\\d*))(\\.\\d+)?", n.getText()))) ) {
				throw new FailedPredicateException(input, "number", "Pattern.matches(\"(0|(-?[1-9]\\\\d*))(\\\\.\\\\d+)?\", n.getText())");
			}
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:73:9: ( Exponent )?
			int alt2=2;
			int LA2_0 = input.LA(1);
			if ( (LA2_0==Exponent) ) {
				alt2=1;
			}
			switch (alt2) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:73:9: Exponent
					{
					Exponent11=(Token)match(input,Exponent,FOLLOW_Exponent_in_number262);  
					stream_Exponent.add(Exponent11);

					}
					break;

			}

			// AST REWRITE
			// elements: Exponent, Number
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 74:7: -> ^( NUMBER Number ( Exponent )? )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:74:10: ^( NUMBER Number ( Exponent )? )
				{
				Object root_1 = (Object)adaptor.nil();
				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(NUMBER, "NUMBER"), root_1);
				adaptor.addChild(root_1, stream_Number.nextNode());
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:74:26: ( Exponent )?
				if ( stream_Exponent.hasNext() ) {
					adaptor.addChild(root_1, stream_Exponent.nextNode());
				}
				stream_Exponent.reset();

				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "number"


	public static class object_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "object"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:77:1: object : '{' members '}' -> ^( OBJECT members ) ;
	public final JSONParser.object_return object() throws RecognitionException {
		JSONParser.object_return retval = new JSONParser.object_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token char_literal12=null;
		Token char_literal14=null;
		ParserRuleReturnScope members13 =null;

		Object char_literal12_tree=null;
		Object char_literal14_tree=null;
		RewriteRuleTokenStream stream_27=new RewriteRuleTokenStream(adaptor,"token 27");
		RewriteRuleTokenStream stream_28=new RewriteRuleTokenStream(adaptor,"token 28");
		RewriteRuleSubtreeStream stream_members=new RewriteRuleSubtreeStream(adaptor,"rule members");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:77:9: ( '{' members '}' -> ^( OBJECT members ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:77:11: '{' members '}'
			{
			char_literal12=(Token)match(input,27,FOLLOW_27_in_object295);  
			stream_27.add(char_literal12);

			pushFollow(FOLLOW_members_in_object297);
			members13=members();
			state._fsp--;

			stream_members.add(members13.getTree());
			char_literal14=(Token)match(input,28,FOLLOW_28_in_object299);  
			stream_28.add(char_literal14);

			// AST REWRITE
			// elements: members
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 78:7: -> ^( OBJECT members )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:78:10: ^( OBJECT members )
				{
				Object root_1 = (Object)adaptor.nil();
				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(OBJECT, "OBJECT"), root_1);
				adaptor.addChild(root_1, stream_members.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "object"


	public static class array_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "array"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:81:1: array : '[' elements ']' -> ^( ARRAY elements ) ;
	public final JSONParser.array_return array() throws RecognitionException {
		JSONParser.array_return retval = new JSONParser.array_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token char_literal15=null;
		Token char_literal17=null;
		ParserRuleReturnScope elements16 =null;

		Object char_literal15_tree=null;
		Object char_literal17_tree=null;
		RewriteRuleTokenStream stream_22=new RewriteRuleTokenStream(adaptor,"token 22");
		RewriteRuleTokenStream stream_23=new RewriteRuleTokenStream(adaptor,"token 23");
		RewriteRuleSubtreeStream stream_elements=new RewriteRuleSubtreeStream(adaptor,"rule elements");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:81:9: ( '[' elements ']' -> ^( ARRAY elements ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:81:11: '[' elements ']'
			{
			char_literal15=(Token)match(input,22,FOLLOW_22_in_array329);  
			stream_22.add(char_literal15);

			pushFollow(FOLLOW_elements_in_array331);
			elements16=elements();
			state._fsp--;

			stream_elements.add(elements16.getTree());
			char_literal17=(Token)match(input,23,FOLLOW_23_in_array333);  
			stream_23.add(char_literal17);

			// AST REWRITE
			// elements: elements
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 82:7: -> ^( ARRAY elements )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:82:10: ^( ARRAY elements )
				{
				Object root_1 = (Object)adaptor.nil();
				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(ARRAY, "ARRAY"), root_1);
				adaptor.addChild(root_1, stream_elements.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "array"


	public static class elements_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "elements"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:85:1: elements : value ( COMMA ! value )* ;
	public final JSONParser.elements_return elements() throws RecognitionException {
		JSONParser.elements_return retval = new JSONParser.elements_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token COMMA19=null;
		ParserRuleReturnScope value18 =null;
		ParserRuleReturnScope value20 =null;

		Object COMMA19_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:85:9: ( value ( COMMA ! value )* )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:85:11: value ( COMMA ! value )*
			{
			root_0 = (Object)adaptor.nil();


			pushFollow(FOLLOW_value_in_elements360);
			value18=value();
			state._fsp--;

			adaptor.addChild(root_0, value18.getTree());

			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:85:17: ( COMMA ! value )*
			loop3:
			while (true) {
				int alt3=2;
				int LA3_0 = input.LA(1);
				if ( (LA3_0==COMMA) ) {
					alt3=1;
				}

				switch (alt3) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:85:18: COMMA ! value
					{
					COMMA19=(Token)match(input,COMMA,FOLLOW_COMMA_in_elements363); 
					pushFollow(FOLLOW_value_in_elements366);
					value20=value();
					state._fsp--;

					adaptor.addChild(root_0, value20.getTree());

					}
					break;

				default :
					break loop3;
				}
			}

			}

			retval.stop = input.LT(-1);

			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "elements"


	public static class members_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "members"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:88:1: members : pair ( COMMA ! pair )* ;
	public final JSONParser.members_return members() throws RecognitionException {
		JSONParser.members_return retval = new JSONParser.members_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token COMMA22=null;
		ParserRuleReturnScope pair21 =null;
		ParserRuleReturnScope pair23 =null;

		Object COMMA22_tree=null;

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:88:9: ( pair ( COMMA ! pair )* )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:88:11: pair ( COMMA ! pair )*
			{
			root_0 = (Object)adaptor.nil();


			pushFollow(FOLLOW_pair_in_members382);
			pair21=pair();
			state._fsp--;

			adaptor.addChild(root_0, pair21.getTree());

			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:88:16: ( COMMA ! pair )*
			loop4:
			while (true) {
				int alt4=2;
				int LA4_0 = input.LA(1);
				if ( (LA4_0==COMMA) ) {
					alt4=1;
				}

				switch (alt4) {
				case 1 :
					// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:88:17: COMMA ! pair
					{
					COMMA22=(Token)match(input,COMMA,FOLLOW_COMMA_in_members385); 
					pushFollow(FOLLOW_pair_in_members388);
					pair23=pair();
					state._fsp--;

					adaptor.addChild(root_0, pair23.getTree());

					}
					break;

				default :
					break loop4;
				}
			}

			}

			retval.stop = input.LT(-1);

			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "members"


	public static class pair_return extends ParserRuleReturnScope {
		Object tree;
		@Override
		public Object getTree() { return tree; }
	};


	// $ANTLR start "pair"
	// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:91:1: pair : String ':' value -> ^( FIELD String value ) ;
	public final JSONParser.pair_return pair() throws RecognitionException {
		JSONParser.pair_return retval = new JSONParser.pair_return();
		retval.start = input.LT(1);

		Object root_0 = null;

		Token String24=null;
		Token char_literal25=null;
		ParserRuleReturnScope value26 =null;

		Object String24_tree=null;
		Object char_literal25_tree=null;
		RewriteRuleTokenStream stream_String=new RewriteRuleTokenStream(adaptor,"token String");
		RewriteRuleTokenStream stream_21=new RewriteRuleTokenStream(adaptor,"token 21");
		RewriteRuleSubtreeStream stream_value=new RewriteRuleSubtreeStream(adaptor,"rule value");

		try {
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:91:9: ( String ':' value -> ^( FIELD String value ) )
			// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:91:11: String ':' value
			{
			String24=(Token)match(input,String,FOLLOW_String_in_pair407);  
			stream_String.add(String24);

			char_literal25=(Token)match(input,21,FOLLOW_21_in_pair409);  
			stream_21.add(char_literal25);

			pushFollow(FOLLOW_value_in_pair411);
			value26=value();
			state._fsp--;

			stream_value.add(value26.getTree());
			// AST REWRITE
			// elements: value, String
			// token labels: 
			// rule labels: retval
			// token list labels: 
			// rule list labels: 
			// wildcard labels: 
			retval.tree = root_0;
			RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"rule retval",retval!=null?retval.getTree():null);

			root_0 = (Object)adaptor.nil();
			// 92:7: -> ^( FIELD String value )
			{
				// /Users/amkimian/Development/cloud/Rapture/Libs/RaptureCommon/src/main/antlr3/rapture/json/JSON.g:92:10: ^( FIELD String value )
				{
				Object root_1 = (Object)adaptor.nil();
				root_1 = (Object)adaptor.becomeRoot((Object)adaptor.create(FIELD, "FIELD"), root_1);
				adaptor.addChild(root_1, stream_String.nextNode());
				adaptor.addChild(root_1, stream_value.nextTree());
				adaptor.addChild(root_0, root_1);
				}

			}


			retval.tree = root_0;

			}

			retval.stop = input.LT(-1);

			retval.tree = (Object)adaptor.rulePostProcessing(root_0);
			adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

		}

		catch (RecognitionException e) {
		throw e;
		}

		finally {
			// do for sure before leaving
		}
		return retval;
	}
	// $ANTLR end "pair"

	// Delegated rules



	public static final BitSet FOLLOW_value_in_parse115 = new BitSet(new long[]{0x0000000000000000L});
	public static final BitSet FOLLOW_EOF_in_parse117 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_string_in_value139 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_number_in_value147 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_object_in_value155 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_array_in_value163 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_26_in_value171 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_24_in_value183 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_25_in_value195 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_String_in_string214 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_Number_in_number250 = new BitSet(new long[]{0x0000000000000102L});
	public static final BitSet FOLLOW_Exponent_in_number262 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_27_in_object295 = new BitSet(new long[]{0x0000000000020000L});
	public static final BitSet FOLLOW_members_in_object297 = new BitSet(new long[]{0x0000000010000000L});
	public static final BitSet FOLLOW_28_in_object299 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_22_in_array329 = new BitSet(new long[]{0x000000000F424000L});
	public static final BitSet FOLLOW_elements_in_array331 = new BitSet(new long[]{0x0000000000800000L});
	public static final BitSet FOLLOW_23_in_array333 = new BitSet(new long[]{0x0000000000000002L});
	public static final BitSet FOLLOW_value_in_elements360 = new BitSet(new long[]{0x0000000000000022L});
	public static final BitSet FOLLOW_COMMA_in_elements363 = new BitSet(new long[]{0x000000000F424000L});
	public static final BitSet FOLLOW_value_in_elements366 = new BitSet(new long[]{0x0000000000000022L});
	public static final BitSet FOLLOW_pair_in_members382 = new BitSet(new long[]{0x0000000000000022L});
	public static final BitSet FOLLOW_COMMA_in_members385 = new BitSet(new long[]{0x0000000000020000L});
	public static final BitSet FOLLOW_pair_in_members388 = new BitSet(new long[]{0x0000000000000022L});
	public static final BitSet FOLLOW_String_in_pair407 = new BitSet(new long[]{0x0000000000200000L});
	public static final BitSet FOLLOW_21_in_pair409 = new BitSet(new long[]{0x000000000F424000L});
	public static final BitSet FOLLOW_value_in_pair411 = new BitSet(new long[]{0x0000000000000002L});
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy