krysalis-impus/src/java/org/krysalis/impus ASTUtil.java,1.1,1.2 ImpusLexer.java,1.1,1.2 ImpusParser.java,1.1,1.2 ImpusTokenTypes.java,1.1,1.2 ImpusTokenTypes.txt,1.1,1.2 Initializer.java,1.1,1.2 parser.g,1.1,1.2

[email protected] Tue, 15 Apr 2003 21:17:51 -0700
Newsgroups gmane.comp.krysalis.sandbox
Message-ID <[email protected]>
Update of /cvsroot/metamorphosis/krysalis-impus/src/java/org/krysalis/impus
In directory sc8-pr-cvs1:/tmp/cvs-serv6401/src/java/org/krysalis/impus

Modified Files:
	ASTUtil.java ImpusLexer.java ImpusParser.java 
	ImpusTokenTypes.java ImpusTokenTypes.txt Initializer.java 
	parser.g 
Log Message:
Added support for single quotes for string literals

Index: ASTUtil.java
===================================================================
RCS file: /cvsroot/metamorphosis/krysalis-impus/src/java/org/krysalis/impus/ASTUtil.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ASTUtil.java	15 Mar 2003 06:02:51 -0000	1.1
--- ASTUtil.java	16 Apr 2003 04:17:48 -0000	1.2
***************
*** 47,51 ****
          boolean containsLongSuffix = upTokenText.endsWith( "L" ) && valueAST.getType() == NUM_LONG;
          boolean containsFloatSuffix = ( upTokenText.endsWith( "F" ) || upTokenText.endsWith( "D" ) ) && ( valueAST.getType() == NUM_FLOAT || valueAST.getType() == NUM_DOUBLE );
!         if ( valueAST.getType() == STRING_LITERAL || valueAST.getType() == CHAR_LITERAL )
              return convertEscapes( tokenText.substring( 1, tokenText.length() - 1 ) );
          else if ( valueAST.getType() == MINUS )
--- 47,51 ----
          boolean containsLongSuffix = upTokenText.endsWith( "L" ) && valueAST.getType() == NUM_LONG;
          boolean containsFloatSuffix = ( upTokenText.endsWith( "F" ) || upTokenText.endsWith( "D" ) ) && ( valueAST.getType() == NUM_FLOAT || valueAST.getType() == NUM_DOUBLE );
!         if ( valueAST.getType() == STRING_LITERAL  )
              return convertEscapes( tokenText.substring( 1, tokenText.length() - 1 ) );
          else if ( valueAST.getType() == MINUS )

Index: ImpusLexer.java
===================================================================
RCS file: /cvsroot/metamorphosis/krysalis-impus/src/java/org/krysalis/impus/ImpusLexer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ImpusLexer.java	15 Mar 2003 06:02:51 -0000	1.1
--- ImpusLexer.java	16 Apr 2003 04:17:48 -0000	1.2
***************
*** 43,48 ****
  	setCaseSensitive(true);
  	literals = new Hashtable();
! 	literals.put(new ANTLRHashString("true", this), new Integer(12));
! 	literals.put(new ANTLRHashString("false", this), new Integer(13));
  }
  
--- 43,48 ----
  	setCaseSensitive(true);
  	literals = new Hashtable();
! 	literals.put(new ANTLRHashString("true", this), new Integer(11));
! 	literals.put(new ANTLRHashString("false", this), new Integer(12));
  }
  
***************
*** 118,128 ****
  					break;
  				}
! 				case '\'':
! 				{
! 					mCHAR_LITERAL(true);
! 					theRetToken=_returnToken;
! 					break;
! 				}
! 				case '"':
  				{
  					mSTRING_LITERAL(true);
--- 118,122 ----
  					break;
  				}
! 				case '"':  case '\'':
  				{
  					mSTRING_LITERAL(true);
***************
*** 468,488 ****
  	}
  	
! 	public final void mCHAR_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  		int _ttype; Token _token=null; int _begin=text.length();
! 		_ttype = CHAR_LITERAL;
  		int _saveIndex;
  		
! 		match('\'');
  		{
! 		if ((LA(1)=='\\')) {
! 			mESC(false);
  		}
! 		else if ((_tokenSet_2.member(LA(1)))) {
! 			matchNot('\'');
  		}
! 		else {
  			throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
  		}
  		
  		}
  		match('\'');
--- 462,515 ----
  	}
  	
! 	public final void mSTRING_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  		int _ttype; Token _token=null; int _begin=text.length();
! 		_ttype = STRING_LITERAL;
  		int _saveIndex;
  		
! 		switch ( LA(1)) {
! 		case '\'':
  		{
! 			mSINGLE_STRING_LITERAL(false);
! 			break;
  		}
! 		case '"':
! 		{
! 			mDOUBLE_STRING_LITERAL(false);
! 			break;
  		}
! 		default:
! 		{
  			throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
  		}
+ 		}
+ 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ 			_token = makeToken(_ttype);
+ 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ 		}
+ 		_returnToken = _token;
+ 	}
+ 	
+ 	private final void mSINGLE_STRING_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ 		int _ttype; Token _token=null; int _begin=text.length();
+ 		_ttype = SINGLE_STRING_LITERAL;
+ 		int _saveIndex;
  		
+ 		match('\'');
+ 		{
+ 		_loop47:
+ 		do {
+ 			if ((LA(1)=='\\')) {
+ 				mESC(false);
+ 			}
+ 			else if ((_tokenSet_2.member(LA(1)))) {
+ 				{
+ 				match(_tokenSet_2);
+ 				}
+ 			}
+ 			else {
+ 				break _loop47;
+ 			}
+ 			
+ 		} while (true);
  		}
  		match('\'');
***************
*** 494,497 ****
--- 521,555 ----
  	}
  	
+ 	private final void mDOUBLE_STRING_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ 		int _ttype; Token _token=null; int _begin=text.length();
+ 		_ttype = DOUBLE_STRING_LITERAL;
+ 		int _saveIndex;
+ 		
+ 		match('"');
+ 		{
+ 		_loop43:
+ 		do {
+ 			if ((LA(1)=='\\')) {
+ 				mESC(false);
+ 			}
+ 			else if ((_tokenSet_3.member(LA(1)))) {
+ 				{
+ 				match(_tokenSet_3);
+ 				}
+ 			}
+ 			else {
+ 				break _loop43;
+ 			}
+ 			
+ 		} while (true);
+ 		}
+ 		match('"');
+ 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ 			_token = makeToken(_ttype);
+ 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ 		}
+ 		_returnToken = _token;
+ 	}
+ 	
  	protected final void mESC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  		int _ttype; Token _token=null; int _begin=text.length();
***************
*** 545,550 ****
  		{
  			{
! 			int _cnt48=0;
! 			_loop48:
  			do {
  				if ((LA(1)=='u')) {
--- 603,608 ----
  		{
  			{
! 			int _cnt51=0;
! 			_loop51:
  			do {
  				if ((LA(1)=='u')) {
***************
*** 552,559 ****
  				}
  				else {
! 					if ( _cnt48>=1 ) { break _loop48; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
  				}
  				
! 				_cnt48++;
  			} while (true);
  			}
--- 610,617 ----
  				}
  				else {
! 					if ( _cnt51>=1 ) { break _loop51; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
  				}
  				
! 				_cnt51++;
  			} while (true);
  			}
***************
*** 620,654 ****
  	}
  	
- 	public final void mSTRING_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
- 		int _ttype; Token _token=null; int _begin=text.length();
- 		_ttype = STRING_LITERAL;
- 		int _saveIndex;
- 		
- 		match('"');
- 		{
- 		_loop44:
- 		do {
- 			if ((LA(1)=='\\')) {
- 				mESC(false);
- 			}
- 			else if ((_tokenSet_3.member(LA(1)))) {
- 				{
- 				match(_tokenSet_3);
- 				}
- 			}
- 			else {
- 				break _loop44;
- 			}
- 			
- 		} while (true);
- 		}
- 		match('"');
- 		if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
- 			_token = makeToken(_ttype);
- 			_token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
- 		}
- 		_returnToken = _token;
- 	}
- 	
  	protected final void mHEX_DIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
  		int _ttype; Token _token=null; int _begin=text.length();
--- 678,681 ----
***************
*** 736,740 ****
  		}
  		{
! 		_loop57:
  		do {
  			switch ( LA(1)) {
--- 763,767 ----
  		}
  		{
! 		_loop60:
  		do {
  			switch ( LA(1)) {
***************
*** 780,784 ****
  			default:
  			{
! 				break _loop57;
  			}
  			}
--- 807,811 ----
  			default:
  			{
! 				break _loop60;
  			}
  			}
***************
*** 811,816 ****
  			if (((LA(1) >= '0' && LA(1) <= '9'))) {
  				{
! 				int _cnt61=0;
! 				_loop61:
  				do {
  					if (((LA(1) >= '0' && LA(1) <= '9'))) {
--- 838,843 ----
  			if (((LA(1) >= '0' && LA(1) <= '9'))) {
  				{
! 				int _cnt64=0;
! 				_loop64:
  				do {
  					if (((LA(1) >= '0' && LA(1) <= '9'))) {
***************
*** 818,825 ****
  					}
  					else {
! 						if ( _cnt61>=1 ) { break _loop61; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
  					}
  					
! 					_cnt61++;
  				} while (true);
  				}
--- 845,852 ----
  					}
  					else {
! 						if ( _cnt64>=1 ) { break _loop64; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
  					}
  					
! 					_cnt64++;
  				} while (true);
  				}
***************
*** 889,894 ****
  					}
  					{
! 					int _cnt68=0;
! 					_loop68:
  					do {
  						if ((_tokenSet_5.member(LA(1))) && (true) && (true) && (true) && (true)) {
--- 916,921 ----
  					}
  					{
! 					int _cnt71=0;
! 					_loop71:
  					do {
  						if ((_tokenSet_5.member(LA(1))) && (true) && (true) && (true) && (true)) {
***************
*** 896,903 ****
  						}
  						else {
! 							if ( _cnt68>=1 ) { break _loop68; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
  						}
  						
! 						_cnt68++;
  					} while (true);
  					}
--- 923,930 ----
  						}
  						else {
! 							if ( _cnt71>=1 ) { break _loop71; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
  						}
  						
! 						_cnt71++;
  					} while (true);
  					}
***************
*** 908,913 ****
  				{
  					{
! 					int _cnt70=0;
! 					_loop70:
  					do {
  						if (((LA(1) >= '0' && LA(1) <= '7'))) {
--- 935,940 ----
  				{
  					{
! 					int _cnt73=0;
! 					_loop73:
  					do {
  						if (((LA(1) >= '0' && LA(1) <= '7'))) {
***************
*** 915,922 ****
  						}
  						else {
! 							if ( _cnt70>=1 ) { break _loop70; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
  						}
  						
! 						_cnt70++;
  					} while (true);
  					}
--- 942,949 ----
  						}
  						else {
! 							if ( _cnt73>=1 ) { break _loop73; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
  						}
  						
! 						_cnt73++;
  					} while (true);
  					}
***************
*** 938,942 ****
  				}
  				{
! 				_loop73:
  				do {
  					if (((LA(1) >= '0' && LA(1) <= '9'))) {
--- 965,969 ----
  				}
  				{
! 				_loop76:
  				do {
  					if (((LA(1) >= '0' && LA(1) <= '9'))) {
***************
*** 944,948 ****
  					}
  					else {
! 						break _loop73;
  					}
  					
--- 971,975 ----
  					}
  					else {
! 						break _loop76;
  					}
  					
***************
*** 987,991 ****
  					match('.');
  					{
! 					_loop78:
  					do {
  						if (((LA(1) >= '0' && LA(1) <= '9'))) {
--- 1014,1018 ----
  					match('.');
  					{
! 					_loop81:
  					do {
  						if (((LA(1) >= '0' && LA(1) <= '9'))) {
***************
*** 993,997 ****
  						}
  						else {
! 							break _loop78;
  						}
  						
--- 1020,1024 ----
  						}
  						else {
! 							break _loop81;
  						}
  						
***************
*** 1120,1125 ****
  		}
  		{
! 		int _cnt86=0;
! 		_loop86:
  		do {
  			if (((LA(1) >= '0' && LA(1) <= '9'))) {
--- 1147,1152 ----
  		}
  		{
! 		int _cnt89=0;
! 		_loop89:
  		do {
  			if (((LA(1) >= '0' && LA(1) <= '9'))) {
***************
*** 1127,1134 ****
  			}
  			else {
! 				if ( _cnt86>=1 ) { break _loop86; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
  			}
  			
! 			_cnt86++;
  		} while (true);
  		}
--- 1154,1161 ----
  			}
  			else {
! 				if ( _cnt89>=1 ) { break _loop89; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
  			}
  			
! 			_cnt89++;
  		} while (true);
  		}

Index: ImpusParser.java
===================================================================
RCS file: /cvsroot/metamorphosis/krysalis-impus/src/java/org/krysalis/impus/ImpusParser.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ImpusParser.java	15 Mar 2003 06:02:51 -0000	1.1
--- ImpusParser.java	16 Apr 2003 04:17:48 -0000	1.2
***************
*** 157,169 ****
  		
  		switch ( LA(1)) {
- 		case CHAR_LITERAL:
- 		{
- 			AST tmp8_AST = null;
- 			tmp8_AST = astFactory.create(LT(1));
- 			astFactory.makeASTRoot(currentAST, tmp8_AST);
- 			match(CHAR_LITERAL);
- 			rvalue_AST = (AST)currentAST.root;
- 			break;
- 		}
  		case MINUS:
  		case NUM_INT:
--- 157,160 ----
***************
*** 176,182 ****
  			case MINUS:
  			{
! 				AST tmp9_AST = null;
! 				tmp9_AST = astFactory.create(LT(1));
! 				astFactory.makeASTRoot(currentAST, tmp9_AST);
  				match(MINUS);
  				break;
--- 167,173 ----
  			case MINUS:
  			{
! 				AST tmp8_AST = null;
! 				tmp8_AST = astFactory.create(LT(1));
! 				astFactory.makeASTRoot(currentAST, tmp8_AST);
  				match(MINUS);
  				break;
***************
*** 202,208 ****
  		case STRING_LITERAL:
  		{
! 			AST tmp10_AST = null;
! 			tmp10_AST = astFactory.create(LT(1));
! 			astFactory.makeASTRoot(currentAST, tmp10_AST);
  			match(STRING_LITERAL);
  			rvalue_AST = (AST)currentAST.root;
--- 193,199 ----
  		case STRING_LITERAL:
  		{
! 			AST tmp9_AST = null;
! 			tmp9_AST = astFactory.create(LT(1));
! 			astFactory.makeASTRoot(currentAST, tmp9_AST);
  			match(STRING_LITERAL);
  			rvalue_AST = (AST)currentAST.root;
***************
*** 211,217 ****
  		case LITERAL_true:
  		{
! 			AST tmp11_AST = null;
! 			tmp11_AST = astFactory.create(LT(1));
! 			astFactory.addASTChild(currentAST, tmp11_AST);
  			match(LITERAL_true);
  			rvalue_AST = (AST)currentAST.root;
--- 202,208 ----
  		case LITERAL_true:
  		{
! 			AST tmp10_AST = null;
! 			tmp10_AST = astFactory.create(LT(1));
! 			astFactory.addASTChild(currentAST, tmp10_AST);
  			match(LITERAL_true);
  			rvalue_AST = (AST)currentAST.root;
***************
*** 220,226 ****
  		case LITERAL_false:
  		{
! 			AST tmp12_AST = null;
! 			tmp12_AST = astFactory.create(LT(1));
! 			astFactory.addASTChild(currentAST, tmp12_AST);
  			match(LITERAL_false);
  			rvalue_AST = (AST)currentAST.root;
--- 211,217 ----
  		case LITERAL_false:
  		{
! 			AST tmp11_AST = null;
! 			tmp11_AST = astFactory.create(LT(1));
! 			astFactory.addASTChild(currentAST, tmp11_AST);
  			match(LITERAL_false);
  			rvalue_AST = (AST)currentAST.root;
***************
*** 259,265 ****
  		case NUM_INT:
  		{
! 			AST tmp13_AST = null;
! 			tmp13_AST = astFactory.create(LT(1));
! 			astFactory.makeASTRoot(currentAST, tmp13_AST);
  			match(NUM_INT);
  			number_AST = (AST)currentAST.root;
--- 250,256 ----
  		case NUM_INT:
  		{
! 			AST tmp12_AST = null;
! 			tmp12_AST = astFactory.create(LT(1));
! 			astFactory.makeASTRoot(currentAST, tmp12_AST);
  			match(NUM_INT);
  			number_AST = (AST)currentAST.root;
***************
*** 268,274 ****
  		case NUM_LONG:
  		{
! 			AST tmp14_AST = null;
! 			tmp14_AST = astFactory.create(LT(1));
! 			astFactory.makeASTRoot(currentAST, tmp14_AST);
  			match(NUM_LONG);
  			number_AST = (AST)currentAST.root;
--- 259,265 ----
  		case NUM_LONG:
  		{
! 			AST tmp13_AST = null;
! 			tmp13_AST = astFactory.create(LT(1));
! 			astFactory.makeASTRoot(currentAST, tmp13_AST);
  			match(NUM_LONG);
  			number_AST = (AST)currentAST.root;
***************
*** 277,283 ****
  		case NUM_FLOAT:
  		{
! 			AST tmp15_AST = null;
! 			tmp15_AST = astFactory.create(LT(1));
! 			astFactory.makeASTRoot(currentAST, tmp15_AST);
  			match(NUM_FLOAT);
  			number_AST = (AST)currentAST.root;
--- 268,274 ----
  		case NUM_FLOAT:
  		{
! 			AST tmp14_AST = null;
! 			tmp14_AST = astFactory.create(LT(1));
! 			astFactory.makeASTRoot(currentAST, tmp14_AST);
  			match(NUM_FLOAT);
  			number_AST = (AST)currentAST.root;
***************
*** 286,292 ****
  		case NUM_DOUBLE:
  		{
! 			AST tmp16_AST = null;
! 			tmp16_AST = astFactory.create(LT(1));
! 			astFactory.makeASTRoot(currentAST, tmp16_AST);
  			match(NUM_DOUBLE);
  			number_AST = (AST)currentAST.root;
--- 277,283 ----
  		case NUM_DOUBLE:
  		{
! 			AST tmp15_AST = null;
! 			tmp15_AST = astFactory.create(LT(1));
! 			astFactory.makeASTRoot(currentAST, tmp15_AST);
  			match(NUM_DOUBLE);
  			number_AST = (AST)currentAST.root;
***************
*** 307,313 ****
  		AST listValues_AST = null;
  		
! 		AST tmp17_AST = null;
! 		tmp17_AST = astFactory.create(LT(1));
! 		astFactory.addASTChild(currentAST, tmp17_AST);
  		match(LBRACK);
  		{
--- 298,304 ----
  		AST listValues_AST = null;
  		
! 		AST tmp16_AST = null;
! 		tmp16_AST = astFactory.create(LT(1));
! 		astFactory.addASTChild(currentAST, tmp16_AST);
  		match(LBRACK);
  		{
***************
*** 315,319 ****
  		case LPAREN:
  		case IDENT:
- 		case CHAR_LITERAL:
  		case MINUS:
  		case STRING_LITERAL:
--- 306,309 ----
***************
*** 370,374 ****
  		"DOT",
  		"ASSIGN",
- 		"CHAR_LITERAL",
  		"MINUS",
  		"STRING_LITERAL",
--- 360,363 ----
***************
*** 387,390 ****
--- 376,381 ----
  		"SL_COMMENT",
  		"ML_COMMENT",
+ 		"DOUBLE_STRING_LITERAL",
+ 		"SINGLE_STRING_LITERAL",
  		"ESC",
  		"HEX_DIGIT",

Index: ImpusTokenTypes.java
===================================================================
RCS file: /cvsroot/metamorphosis/krysalis-impus/src/java/org/krysalis/impus/ImpusTokenTypes.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ImpusTokenTypes.java	15 Mar 2003 06:02:51 -0000	1.1
--- ImpusTokenTypes.java	16 Apr 2003 04:17:48 -0000	1.2
***************
*** 11,34 ****
  	int DOT = 7;
  	int ASSIGN = 8;
! 	int CHAR_LITERAL = 9;
! 	int MINUS = 10;
! 	int STRING_LITERAL = 11;
! 	int LITERAL_true = 12;
! 	int LITERAL_false = 13;
! 	int NUM_INT = 14;
! 	int NUM_LONG = 15;
! 	int NUM_FLOAT = 16;
! 	int NUM_DOUBLE = 17;
! 	int LBRACK = 18;
! 	int COMMA = 19;
! 	int RBRACK = 20;
! 	int LCURLY = 21;
! 	int RCURLY = 22;
! 	int WS = 23;
! 	int SL_COMMENT = 24;
! 	int ML_COMMENT = 25;
! 	int ESC = 26;
! 	int HEX_DIGIT = 27;
! 	int EXPONENT = 28;
! 	int FLOAT_SUFFIX = 29;
  }
--- 11,35 ----
  	int DOT = 7;
  	int ASSIGN = 8;
! 	int MINUS = 9;
! 	int STRING_LITERAL = 10;
! 	int LITERAL_true = 11;
! 	int LITERAL_false = 12;
! 	int NUM_INT = 13;
! 	int NUM_LONG = 14;
! 	int NUM_FLOAT = 15;
! 	int NUM_DOUBLE = 16;
! 	int LBRACK = 17;
! 	int COMMA = 18;
! 	int RBRACK = 19;
! 	int LCURLY = 20;
! 	int RCURLY = 21;
! 	int WS = 22;
! 	int SL_COMMENT = 23;
! 	int ML_COMMENT = 24;
! 	int DOUBLE_STRING_LITERAL = 25;
! 	int SINGLE_STRING_LITERAL = 26;
! 	int ESC = 27;
! 	int HEX_DIGIT = 28;
! 	int EXPONENT = 29;
! 	int FLOAT_SUFFIX = 30;
  }

Index: ImpusTokenTypes.txt
===================================================================
RCS file: /cvsroot/metamorphosis/krysalis-impus/src/java/org/krysalis/impus/ImpusTokenTypes.txt,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ImpusTokenTypes.txt	15 Mar 2003 06:02:51 -0000	1.1
--- ImpusTokenTypes.txt	16 Apr 2003 04:17:48 -0000	1.2
***************
*** 6,28 ****
  DOT=7
  ASSIGN=8
! CHAR_LITERAL=9
! MINUS=10
! STRING_LITERAL=11
! LITERAL_true="true"=12
! LITERAL_false="false"=13
! NUM_INT=14
! NUM_LONG=15
! NUM_FLOAT=16
! NUM_DOUBLE=17
! LBRACK=18
! COMMA=19
! RBRACK=20
! LCURLY=21
! RCURLY=22
! WS=23
! SL_COMMENT=24
! ML_COMMENT=25
! ESC=26
! HEX_DIGIT=27
! EXPONENT=28
! FLOAT_SUFFIX=29
--- 6,29 ----
  DOT=7
  ASSIGN=8
! MINUS=9
! STRING_LITERAL=10
! LITERAL_true="true"=11
! LITERAL_false="false"=12
! NUM_INT=13
! NUM_LONG=14
! NUM_FLOAT=15
! NUM_DOUBLE=16
! LBRACK=17
! COMMA=18
! RBRACK=19
! LCURLY=20
! RCURLY=21
! WS=22
! SL_COMMENT=23
! ML_COMMENT=24
! DOUBLE_STRING_LITERAL=25
! SINGLE_STRING_LITERAL=26
! ESC=27
! HEX_DIGIT=28
! EXPONENT=29
! FLOAT_SUFFIX=30

Index: Initializer.java
===================================================================
RCS file: /cvsroot/metamorphosis/krysalis-impus/src/java/org/krysalis/impus/Initializer.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Initializer.java	15 Mar 2003 06:02:51 -0000	1.1
--- Initializer.java	16 Apr 2003 04:17:48 -0000	1.2
***************
*** 263,268 ****
          else if ( ast.getType() == Initializer.STRING_LITERAL )
              return ASTUtil.fixValue( ast );
!         else if ( ast.getType() == Initializer.CHAR_LITERAL )
!             return new Character( ASTUtil.fixValue( ast ).charAt( 0 ) );
          else if ( ast.getType() == Initializer.LPAREN )
              return makeValue( null, ast.getFirstChild() );
--- 263,268 ----
          else if ( ast.getType() == Initializer.STRING_LITERAL )
              return ASTUtil.fixValue( ast );
! //        else if ( ast.getType() == Initializer.CHAR_LITERAL )
! //            return new Character( ASTUtil.fixValue( ast ).charAt( 0 ) );
          else if ( ast.getType() == Initializer.LPAREN )
              return makeValue( null, ast.getFirstChild() );

Index: parser.g
===================================================================
RCS file: /cvsroot/metamorphosis/krysalis-impus/src/java/org/krysalis/impus/parser.g,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** parser.g	15 Mar 2003 06:02:51 -0000	1.1
--- parser.g	16 Apr 2003 04:17:48 -0000	1.2
***************
*** 35,40 ****
  
  rvalue
!     :   CHAR_LITERAL^
!     |   (MINUS^)? number
      |   STRING_LITERAL^
      |   "true"
--- 35,40 ----
  
  rvalue
!     :
!         (MINUS^)? number
      |   STRING_LITERAL^
      |   "true"
***************
*** 134,145 ****
  
  // character literals
! CHAR_LITERAL
! 	:	'\'' ( ESC | ~'\'' ) '\''
! 	;
  
  // string literals
  STRING_LITERAL
  	:	'"' (ESC|~('"'|'\\'))* '"'
  	;
  
  // escape sequence -- note that this is protected; it can only be called
--- 134,155 ----
  
  // character literals
! //CHAR_LITERAL
! //	:	'\'' ( ESC | ~'\'' ) '\''
! //	;
  
  // string literals
  STRING_LITERAL
+ 	:	SINGLE_STRING_LITERAL
+ 	|   DOUBLE_STRING_LITERAL
+ 	;
+ 
+ private DOUBLE_STRING_LITERAL
  	:	'"' (ESC|~('"'|'\\'))* '"'
  	;
+ 
+ private SINGLE_STRING_LITERAL
+ 	:	'\'' (ESC|~('\''|'\\'))* '\''
+ 	;
+ 
  
  // escape sequence -- note that this is protected; it can only be called




-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf