我使用PicoContainer来连接我的应用程序的类。正如你在下面看到的,一切都很完美,但都在一个地方:
CharArrayReader reader = new CharArrayReader(acCode.toCharArray());
CharStream charStream = new CharStream(reader);
Scanner scanner = new Scanner(charStream);
TokenStream tokenStream = new TokenStream(scanner);
ParserGeneratingAST parserGeneratingAST = new ParserGeneratingAST(tokenStream);
--> AbstractSyntaxTree ast = parserGeneratingAST.generateAST(); <-- here is the problem
SymbolsTable symbolsTable = new SymbolsTable();
ErrorsTable errorsTable = new ErrorsTable();
SymbolsTableFillerVisitor symbolsTableFillerVisitor = new SymbolsTableFillerVisitor(symbolsTable, errorsTable);
TypeCheckingVisitor typeCheckingVisitor = new TypeCheckingVisitor(symbolsTable, errorsTable);
InstructionsList instructionsList = new InstructionsList();
CodeGenerationVisitor codeGenerationVisitor = new CodeGenerationVisitor(instructionsList);
symbolsTableFillerVisitor.visit(ast);
typeCheckingVisitor.visit(ast);
codeGenerationVisitor.visit(ast); 问题所在是
AbstractSyntaxTree ast = parserGeneratingAST.generateAST();有什么办法可以使用PicoContainer来解决这个问题吗?如果可能的话,我想让我的类不带注释。
谢谢
发布于 2011-03-17 17:01:40
如果我理解正确的话,您的问题是将AbstractSyntaxTree注入到您的类中,但您必须使用ParserGeneratingAST来生成AbstractSyntaxTree的实例。尽管我不是PicoContainer方面的专家,但我认为在这种情况下,您可以使用创建AbstractSyntaxTree对象的工厂(通过使用ParserGeneratingAST),然后可以使用Factory Injection
https://stackoverflow.com/questions/5336751
复制相似问题