1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-08-03 22:35:43 +02:00

Activated Scanner2 in HEAD.

Forgive me Lord, for I know what I do.
This commit is contained in:
John Camelon 2004-08-05 15:22:00 +00:00
parent 39dd636454
commit fd62bdd86c
9 changed files with 18 additions and 55 deletions

View file

@ -249,10 +249,7 @@ public class CompleteParseASTExpressionTest extends CompleteParseBaseTest{
i = getDeclarations( test );
IASTVariable someInt = (IASTVariable) i.next();
IASTExpression exp = someInt.getInitializerClause().getAssigmentExpression();
if( ParserFactory.USE_NEW_SCANNER )
assertEquals( exp.toString(), "foo(int(3), short(4), double(3.0), float(4.0), char('a'), wchar_t('a'), signed(2), unsigned(3), bool(false), long(3L))" ); //$NON-NLS-1$
else
assertEquals( exp.toString(), "foo(int(3), short(4), double(3.0), float(4.0), char('a'), wchar_t('a'), signed(2), unsigned(3), bool(false), long(3))" ); //$NON-NLS-1$
assertEquals( exp.toString(), "foo(int(3), short(4), double(3.0), float(4.0), char('a'), wchar_t('a'), signed(2), unsigned(3), bool(false), long(3L))" ); //$NON-NLS-1$
}
// Kind POSTFIX_TYPENAME_IDENTIFIER

View file

@ -16,7 +16,6 @@ import junit.framework.TestSuite;
import org.eclipse.cdt.core.model.tests.CModelElementsTests;
import org.eclipse.cdt.core.model.tests.StructuralCModelElementsTests;
import org.eclipse.cdt.core.parser.ParserFactory;
import org.eclipse.cdt.core.parser.tests.scanner2.ObjectMapTest;
import org.eclipse.cdt.core.parser.tests.scanner2.Scanner2Test;
@ -29,14 +28,7 @@ import org.eclipse.cdt.core.parser.tests.scanner2.Scanner2Test;
public class ParserTestSuite extends TestCase {
public static Test suite() {
TestSuite suite= new TestSuite(ParserTestSuite.class.getName());
if( ParserFactory.USE_NEW_SCANNER )
suite.addTestSuite(Scanner2Test.class );
else
{
suite.addTestSuite(BranchTrackerTest.class);
suite.addTestSuite(ScannerTestCase.class);
suite.addTestSuite(ExprEvalTest.class);
}
suite.addTestSuite(Scanner2Test.class );
suite.addTestSuite(QuickParseASTTests.class);
suite.addTestSuite(ParserSymbolTableTest.class);
suite.addTestSuite(ParserSymbolTableTemplateTests.class );

View file

@ -29,7 +29,6 @@ import org.eclipse.cdt.internal.core.parser.StructuralParser;
import org.eclipse.cdt.internal.core.parser.ast.complete.CompleteParseASTFactory;
import org.eclipse.cdt.internal.core.parser.ast.expression.ExpressionParseASTFactory;
import org.eclipse.cdt.internal.core.parser.ast.quick.QuickParseASTFactory;
import org.eclipse.cdt.internal.core.parser.scanner.Scanner;
import org.eclipse.cdt.internal.core.parser.scanner2.Scanner2;
import org.eclipse.cdt.internal.core.parser.token.KeywordSets;
@ -39,8 +38,6 @@ import org.eclipse.cdt.internal.core.parser.token.KeywordSets;
*
*/
public class ParserFactory {
public static final boolean USE_NEW_SCANNER = false;
private static IParserExtensionFactory extensionFactory = new ParserExtensionFactory( ExtensionDialect.GCC );
@ -104,12 +101,7 @@ public class ParserFactory {
IParserLogService logService = ( log == null ) ? createDefaultLogService() : log;
ParserMode ourMode = ( (mode == null )? ParserMode.COMPLETE_PARSE : mode );
ISourceElementRequestor ourRequestor = (( requestor == null) ? new NullSourceElementRequestor() : requestor );
IScanner s = null;
if( USE_NEW_SCANNER )
s = new Scanner2( code, config, ourRequestor, ourMode, language, logService, extensionFactory.createScannerExtension(), workingCopies );
else
s = new Scanner( code, config, ourRequestor, ourMode, language, logService, extensionFactory.createScannerExtension(), workingCopies );
return s;
return new Scanner2( code, config, ourRequestor, ourMode, language, logService, extensionFactory.createScannerExtension(), workingCopies );
}
public static IScanner createScanner( String fileName, IScannerInfo config, ParserMode mode, ParserLanguage language, ISourceElementRequestor requestor, IParserLogService log, List workingCopies ) throws ParserFactoryError, IOException

View file

@ -551,10 +551,10 @@ public class DeclarationWrapper implements IDeclaratorOwner
for( int i = 0; i < currentParameters.size(); ++i )
{
DeclarationWrapper wrapper = (DeclarationWrapper)currentParameters.get(i);
List declarators = wrapper.getDeclaratorsList();
for( int j = 0; j < declarators.size(); j++ )
List decls = wrapper.getDeclaratorsList();
for( int j = 0; j < decls.size(); j++ )
{
Declarator declarator = (Declarator)declarators.get(j);
Declarator declarator = (Declarator)decls.get(j);
result.add(
astFactory.createParameterDeclaration(

View file

@ -22,7 +22,6 @@ import org.eclipse.cdt.core.parser.IProblem;
import org.eclipse.cdt.core.parser.ISourceElementCallbackDelegate;
import org.eclipse.cdt.core.parser.IToken;
import org.eclipse.cdt.core.parser.ITokenDuple;
import org.eclipse.cdt.core.parser.ParserFactory;
import org.eclipse.cdt.core.parser.ParserLanguage;
import org.eclipse.cdt.core.parser.ParserMode;
import org.eclipse.cdt.core.parser.ast.ASTAccessVisibility;
@ -1560,21 +1559,14 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto
info = provider.completeConstruction();
//types that need a pointer
if( ParserFactory.USE_NEW_SCANNER ){
if( kind == IASTExpression.Kind.PRIMARY_STRING_LITERAL ||
(literal.length > 3 && ( kind == IASTExpression.Kind.PRIMARY_CHAR_LITERAL ||
if( kind == IASTExpression.Kind.PRIMARY_STRING_LITERAL ||
(literal.length > 3 && ( kind == IASTExpression.Kind.PRIMARY_CHAR_LITERAL ||
kind == IASTExpression.Kind.POSTFIX_SIMPLETYPE_CHAR )) )
{
info.addPtrOperator(new ITypeInfo.PtrOp(ITypeInfo.PtrOp.t_pointer));
}
} else {
if( kind == IASTExpression.Kind.PRIMARY_STRING_LITERAL ||
(literal.length > 1 && ( kind == IASTExpression.Kind.PRIMARY_CHAR_LITERAL ||
kind == IASTExpression.Kind.POSTFIX_SIMPLETYPE_CHAR )) )
{
info.addPtrOperator(new ITypeInfo.PtrOp(ITypeInfo.PtrOp.t_pointer));
}
{
info.addPtrOperator(new ITypeInfo.PtrOp(ITypeInfo.PtrOp.t_pointer));
}
return new ExpressionResult( info );
}

View file

@ -20,7 +20,6 @@ import org.eclipse.cdt.core.parser.ast.IASTExpression.Kind;
*
*/
public class ExpressionFactory {
private static final String EMPTY_STRING = ""; //$NON-NLS-1$
/**
*
*/

View file

@ -187,8 +187,10 @@ public class ExpressionEvaluator {
long r2 = unaryExpression();
if (t == tMULT)
r1 = r1 * r2;
else // t == tDIV;
else if( r2 != 0 )// t == tDIV;
r1 = r1 / r2;
else
throw new EvalException( "Divide by 0 encountered"); //$NON-NLS-1$
}
return r1;
}

View file

@ -746,6 +746,7 @@ public class Scanner2 implements IScanner, IScannerData {
{
// escaped newline
++bufferPos[bufferStackPos];
++bufferLineNums[bufferStackPos];
len += 2;
escapedNewline = true;
continue;
@ -1216,6 +1217,7 @@ public class Scanner2 implements IScanner, IScannerData {
{
// escaped newline
++bufferPos[bufferStackPos];
++bufferLineNums[bufferStackPos];
len += 2;
continue;
}

View file

@ -10,7 +10,6 @@
***********************************************************************/
package org.eclipse.cdt.internal.core.parser.token;
import org.eclipse.cdt.core.parser.ParserFactory;
import org.eclipse.cdt.internal.core.parser.scanner.ContextStack;
import org.eclipse.cdt.internal.core.parser.scanner.IScannerContext;
@ -77,18 +76,6 @@ public class ImagedToken extends SimpleToken {
public int getLength() {
if( getCharImage() == null )
return 0;
if( ParserFactory.USE_NEW_SCANNER )
return getCharImage().length;
switch( getType() )
{
case tSTRING:
case tCHAR:
return getCharImage().length + 2; // 'c' is 3 characters, not 1
case tLSTRING:
case tLCHAR:
return getCharImage().length + 3; // L"X" if 4 characters, not 1
default:
return getCharImage().length;
}
return getCharImage().length;
}
}