Directory structure

Here is the correct structure for different scenarios assuming your account name is jqstudent:

In Java

This is the one you are supposed to submit:

Some_Directory
`-- jqstudent
   |-- Makefile
   |-- ANTLR's input file (*.g or *.g4)
   |-- lib
   |   `-- antlr.jar
   `-- src
       |-- ...
       |-- Your program's source code (containing Micro.java and any other java files that you wrote (and not the ones antlr generates))
       `-- ...

After "make" or "make all" when Makefile has successfully generated java files from antlr and compiled all the source code it should become:

Some_Directory
`-- jqstudent
   |-- Makefile
   |-- ANTLR's input file (*.g or *.g4)
   |-- build
   |   |-- ...
   |   |-- Files generated by ANTLR from *.g or *.g4 including some .java files
   |   `-- ...
   |-- classes
   |   |-- ...
   |   |-- Micro.class (The class file of your compiler's main class)
   |   |-- *.class files compiled from both src/*.java (the ones you wrote) and build/*.java (the ones antlr generated)
   |   `-- ...
   |-- lib
   |   `-- antlr.jar
   `-- src
       |-- ...
       |-- Your program's source code (containing Micro.java and any other java files that you wrote (and not the ones antlr generates))
       `-- ...

After running "make.clean" it should be like the one you submitted:

Some_Directory
`-- jqstudent
   |-- Makefile
   |-- ANTLR's input file (*.g or *.g4)
   |-- lib
   |   `-- antlr.jar
   `-- src
       |-- ...
       |-- Your program's source code (containing Micro.java and any other java files that you wrote (and not the ones antlr generates))
       `-- ...

In C/C++

This is the one you should submit:

Some_Directory
`-- jqstudent
   |-- Makefile
   |-- lib (This directory may be empty because library files of Flex/Bison have been installed on ECN machines.)
   |   |-- ... 
   |   |-- (Please remember to update the Makefile if you add some other library files here.)
   |   `-- ...
   `-- src
       |-- ...
       |-- Your program's source code (*.h and *.c/*.cpp) and Flex/Bison's input file (*.l and *.y)
       `-- ...

This is what it should become after "make" or "make all" is run:

Some_Directory
`-- jqstudent
   |-- Makefile
   |-- Micro *or* micro (The executable file of your compiler)   
   |-- generated
   |   |-- ...
   |   |-- Files generated by Flex/Bison from src/*.l and src/*.y
   |   `-- ...
   |-- build
   |   |-- ...
   |   |-- *.o files compiled from src/*.c (or src/*.cpp) and generated/*.c (or generated/*.cpp)
   |   `-- ...
   |-- lib (This directory may be empty because library files of Flex/Bison have been installed on ECN machines.)
   |   |-- ... 
   |   |-- (Please remember to update the Makefile if you add some other library files here.)
   |   `-- ...
   `-- src
       |-- ...
       |-- Your program's source code (*.h and *.c/*.cpp) and Flex/Bison's input file (*.l and *.y)
       `-- ...

This is how it should be after "make clean" is run:

Some_Directory
`-- jqstudent
   |-- Makefile
   |-- lib (This directory may be empty because library files of Flex/Bison have been installed on ECN machines.)
   |   |-- ... 
   |   |-- (Please remember to update the Makefile if you add some other library files here.)
   |   `-- ...
   `-- src
       |-- ...
       |-- Your program's source code (*.h and *.c/*.cpp) and Flex/Bison's input file (*.l and *.y)
       `-- ...

In other languages

Some_Directory
`-- jqstudent
   |-- Makefile (with all, group, and clean targets, all should prepare your project to be run if it needs any preparation)
   |-- Micro (a shell named Micro which runs the program and accepts the testcase as a command line argument)
   |-- lib (This directory may be empty if ecegrid-lnx.ecn.purdue.edu has all required libraries and environment to run your program)
   |   |-- ... 
   `-- src
       |-- ...
       |-- Your program's source code
       `-- ...

Your make file may create any directory (e.g. generated or build) to put any generated files and "make clean" should remove these directories.