test_class.file: lbjava/src/test/java/edu/illinois/cs/cogcomp/lbjava/MainTest.java
test_class.identifier: MainTest
test_case.body: @Test
      public void testTwoFeatures() throws Exception {
          String input =
                  generateLBJavaScript("TwoFeatLearner", "testFeature1, testFeature2",
                          "import edu.illinois.cs.cogcomp.lbjava.features.PredefinedFeature;");
          Yylex scanner = new Yylex(new ByteArrayInputStream(input.getBytes()));
          AST ast = (AST) new parser(scanner).parse().value;
  
          Main.runSemanticAnalysis(ast);
  
          assertEquals(5, SemanticAnalysis.dependorGraph.size());
          assertEquals(1, ast.declarations.size());
  
          ASTNode[] astNodes = ast.declarations.iterator().next().iterator().children;
          assertEquals(3, astNodes.length);
          assertTrue(astNodes[0] instanceof ClassifierReturnType);
          assertEquals("discrete", astNodes[0].toString());
          assertTrue(astNodes[2] instanceof LearningClassifierExpression);
          LearningClassifierExpression lce = (LearningClassifierExpression) astNodes[2];
          assertEquals("TwoFeatLearner$$1", lce.extractor.getName());
          ClassifierExpressionList components = ((CompositeGenerator) lce.extractor).components;
          assertEquals(2, components.size());
          ClassifierName component1 = (ClassifierName) components.iterator().next();
          assertTrue(component1.isField);
          assertEquals("PredefinedFeature", AST.globalSymbolTable.classForName(component1.getName())
                  .getSimpleName());
  
          new RevisionAnalysis(ast).run(ast);
          new ClassifierCSE(ast).run(ast);
          new TranslateToJava(ast).run(ast);
          new Train(ast, 0).run(ast);
      }
test_case.class_method_signature: MainTest.testTwoFeatures()
test_case.full_signature: @Test public void testTwoFeatures()
test_case.identifier: testTwoFeatures
test_case.invocations: generateLBJavaScript getBytes parse runSemanticAnalysis assertEquals size assertEquals size iterator next iterator assertEquals assertTrue assertEquals toString assertTrue assertEquals getName assertEquals size next iterator assertTrue assertEquals getSimpleName classForName getName run run run run
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testTwoFeatures()
focal_class.declarator: printTokens = false
focal_class.modifier: private static
focal_class.original_string: private static boolean printTokens = false;
focal_class.type: boolean
focal_class.var_name: printTokens
focal_class.declarator: printAST = false
focal_class.modifier: private static
focal_class.original_string: private static boolean printAST = false;
focal_class.type: boolean
focal_class.var_name: printAST
focal_class.declarator: printSemantic = false
focal_class.modifier: private static
focal_class.original_string: private static boolean printSemantic = false;
focal_class.type: boolean
focal_class.var_name: printSemantic
focal_class.declarator: printRevisions = false
focal_class.modifier: private static
focal_class.original_string: private static boolean printRevisions = false;
focal_class.type: boolean
focal_class.var_name: printRevisions
focal_class.declarator: parserDebug = false
focal_class.modifier: private static
focal_class.original_string: private static boolean parserDebug = false;
focal_class.type: boolean
focal_class.var_name: parserDebug
focal_class.declarator: trainingOutput = 0
focal_class.modifier: private static
focal_class.original_string: private static int trainingOutput = 0;
focal_class.type: int
focal_class.var_name: trainingOutput
focal_class.declarator: clean = false
focal_class.modifier: public static
focal_class.original_string: public static boolean clean = false;
focal_class.type: boolean
focal_class.var_name: clean
focal_class.declarator: compileOnly = false
focal_class.modifier: private static
focal_class.original_string: private static boolean compileOnly = false;
focal_class.type: boolean
focal_class.var_name: compileOnly
focal_class.declarator: concurrentTraining = false
focal_class.modifier: public static
focal_class.original_string: public static boolean concurrentTraining = false;
focal_class.type: boolean
focal_class.var_name: concurrentTraining
focal_class.declarator: warningsDisabled = false
focal_class.modifier: public static
focal_class.original_string: public static boolean warningsDisabled = false;
focal_class.type: boolean
focal_class.var_name: warningsDisabled
focal_class.declarator: printSymbols = false
focal_class.modifier: public static
focal_class.original_string: public static boolean printSymbols = false;
focal_class.type: boolean
focal_class.var_name: printSymbols
focal_class.declarator: sourceDirectory
focal_class.modifier: public static
focal_class.original_string: public static String sourceDirectory;
focal_class.type: String
focal_class.var_name: sourceDirectory
focal_class.declarator: sourceFilename
focal_class.modifier: public static
focal_class.original_string: public static String sourceFilename;
focal_class.type: String
focal_class.var_name: sourceFilename
focal_class.declarator: sourceFileBase
focal_class.modifier: public static
focal_class.original_string: public static String sourceFileBase;
focal_class.type: String
focal_class.var_name: sourceFileBase
focal_class.declarator: javacArguments = ""
focal_class.modifier: public static
focal_class.original_string: public static String javacArguments = "";
focal_class.type: String
focal_class.var_name: javacArguments
focal_class.declarator: fileNames
focal_class.modifier: public static
focal_class.original_string: public static HashSet<String> fileNames;
focal_class.type: HashSet<String>
focal_class.var_name: fileNames
focal_class.declarator: classDirectory
focal_class.modifier: public static
focal_class.original_string: public static String classDirectory;
focal_class.type: String
focal_class.var_name: classDirectory
focal_class.declarator: classPackageDirectory
focal_class.modifier: public static
focal_class.original_string: public static String classPackageDirectory;
focal_class.type: String
focal_class.var_name: classPackageDirectory
focal_class.declarator: classPath = System.getProperty("java.class.path")
focal_class.modifier: public static
focal_class.original_string: public static String classPath = System.getProperty("java.class.path");
focal_class.type: String
focal_class.var_name: classPath
focal_class.declarator: sourcePath = System.getProperty("java.class.path")
focal_class.modifier: public static
focal_class.original_string: public static String sourcePath = System.getProperty("java.class.path");
focal_class.type: String
focal_class.var_name: sourcePath
focal_class.declarator: generatedSourceDirectory
focal_class.modifier: public static
focal_class.original_string: public static String generatedSourceDirectory;
focal_class.type: String
focal_class.var_name: generatedSourceDirectory
focal_class.declarator: passes
focal_class.modifier: private static
focal_class.original_string: private static LinkedList<Pass> passes;
focal_class.type: LinkedList<Pass>
focal_class.var_name: passes
focal_class.file: lbjava/src/main/java/edu/illinois/cs/cogcomp/lbjava/Main.java
focal_class.identifier: Main
focal_class.class_method_signature: Main.main(String[] args)
focal_class.full_signature: public static void main(String[] args)
focal_class.identifier: main
focal_class.modifiers: public static
focal_class.parameters: (String[] args)
focal_class.return: void
focal_class.signature: void main(String[] args)
focal_class.class_method_signature: Main.runSemanticAnalysis(AST ast)
focal_class.full_signature: public static void runSemanticAnalysis(AST ast)
focal_class.identifier: runSemanticAnalysis
focal_class.modifiers: public static
focal_class.parameters: (AST ast)
focal_class.return: void
focal_class.signature: void runSemanticAnalysis(AST ast)
focal_class.class_method_signature: Main.ProcessCommandLine(String[] args)
focal_class.full_signature: private static FileInputStream ProcessCommandLine(String[] args)
focal_class.identifier: ProcessCommandLine
focal_class.modifiers: private static
focal_class.parameters: (String[] args)
focal_class.return: FileInputStream
focal_class.signature: FileInputStream ProcessCommandLine(String[] args)
focal_class.class_method_signature: Main.frontend(FileInputStream in)
focal_class.full_signature: private static AST frontend(FileInputStream in)
focal_class.identifier: frontend
focal_class.modifiers: private static
focal_class.parameters: (FileInputStream in)
focal_class.return: AST
focal_class.signature: AST frontend(FileInputStream in)
focal_class.class_method_signature: Main.dumpTokenStream(Yylex scanner)
focal_class.full_signature: private static void dumpTokenStream(Yylex scanner)
focal_class.identifier: dumpTokenStream
focal_class.modifiers: private static
focal_class.parameters: (Yylex scanner)
focal_class.return: void
focal_class.signature: void dumpTokenStream(Yylex scanner)
focal_class.class_method_signature: Main.PrintUsage()
focal_class.full_signature: public static void PrintUsage()
focal_class.identifier: PrintUsage
focal_class.modifiers: public static
focal_class.parameters: ()
focal_class.return: void
focal_class.signature: void PrintUsage()
focal_method.body: public static void runSemanticAnalysis(AST ast) {
          new SemanticAnalysis(ast).run();
          Pass.printErrorsAndWarnings();
  
          if (generatedSourceDirectory != null) {
              if (AST.globalSymbolTable.getPackage().length() != 0)
                  generatedSourceDirectory +=
                          File.separator
                                  + AST.globalSymbolTable.getPackage().replace('.',
                                          File.separatorChar);
          } else if (sourceDirectory != null)
              generatedSourceDirectory = sourceDirectory;
  
          if (classPackageDirectory != null && AST.globalSymbolTable.getPackage().length() != 0)
              classDirectory =
                      classPackageDirectory + File.separator
                              + AST.globalSymbolTable.getPackage().replace('.', File.separatorChar);
          else
              classDirectory = classPackageDirectory;
      }
focal_method.class_method_signature: Main.runSemanticAnalysis(AST ast)
focal_method.full_signature: public static void runSemanticAnalysis(AST ast)
focal_method.identifier: runSemanticAnalysis
focal_method.invocations: run printErrorsAndWarnings length getPackage replace getPackage length getPackage replace getPackage
focal_method.modifiers: public static
focal_method.parameters: (AST ast)
focal_method.return: void
focal_method.signature: void runSemanticAnalysis(AST ast)