@@ -0,0 +1,1479 @@
+package fortran.lexer;%0A%0Aimport static fortran.lexer.LiteralType.*;%0A%0Aimport java.util.Collections;%0Aimport java.util.EnumSet;%0Aimport java.util.Set;%0A%0A/**%0A * This class contains the definition of the subset of %7B@link LiteralType%7Ds,%0A * that directly represent a keyword of the FORTRAN language:%0A * %3Cul%3E%0A *  %3Cli%3EControl Statements:%0A *  %3Ctt%3EGO, TO, ASSIGN, IF,%0A *  SENSE, LIGHT, SWITCH,%0A *  ACCUMULATOR, OVERFLOW, QUOTIENT, DIVIDE, CHECK,%0A *  PAUSE, STOP, DO, CONTINUE%3C/tt%3E%3C/li%3E%0A *  %3Cli%3EInput/Output:%0A *  %3Ctt%3EREAD, PUNCH, PRINT, INPUT,%0A *  WRITE, OUTPUT,%0A *  FORMAT,%0A *  TAPE, DRUM,%0A *  END, FILE, REWIND, BACKSPACE%3C/tt%3E%3C/li%3E%0A *  %3Cli%3ESpecification Statements:%0A *  %3Ctt%3EDIMENSTION, EQUIVALENCE, FREQUENCY%3C/tt%3E%3C/li%3E%0A * %3C/ul%3E %0A * @author oreissig%0A */%0Apublic class Keyword %7B%0A%09/**%0A%09 * All %7B@link LiteralType%7Ds, that directly represent a%0A%09 * keyword of the FORTRAN language.%0A%09 */%0A%09public static final Set%3CLiteralType%3E set;%0A%09%0A%09static %7B%0A%09%09EnumSet%3CLiteralType%3E keywords = EnumSet.of(%0A%09%09%09    // Control Statements%0A%09%09%09    GO, TO, ASSIGN, IF,%0A%09%09%09    SENSE, LIGHT, SWITCH,%0A%09%09%09    ACCUMULATOR, OVERFLOW, QUOTIENT, DIVIDE, CHECK,%0A%09%09%09    PAUSE, STOP, DO, CONTINUE,%0A%09%09%09    // Input/Output%0A%09%09%09    READ, PUNCH, PRINT, INPUT,%0A%09%09%09    WRITE, OUTPUT,%0A%09%09%09    FORMAT,%0A%09%09%09    TAPE, DRUM,%0A%09%09%09    END, FILE, REWIND, BACKSPACE,%0A%09%09%09    // Specification Statements%0A%09%09%09    DIMENSTION, EQUIVALENCE, FREQUENCY%0A%09%09%09%09);%0A%09%09set = Collections.unmodifiableSet(keywords);%0A%09%7D%0A%09%0A%09private Keyword() %7B%0A%09%09// forbid instantiation%0A%09%7D%0A%7D%0A

introduce Keywords