Class MetaPragma


  • public class MetaPragma
    extends PragmaHandler
    This is an implementation that handles #pragma meta scoped_name string where
    • scoped_name == "::" separated scoped name
    • string == separated identifiers, such as "localonly", "abstract", or "init". D59407: NOTE: any non-white-space is grouped as part of the identifier.
    This pragma handler places a vector of Strings into the dynamicVariable() part of the SymtabEntry. The key to access the dynamicVariable() is MetaPragma.metaKey It is possible to associate a meta pragma with a forward entry. At some point after the parser has completed, the method processForward(ForwardEntry entry) should be called for each ForwardEntry so that the meta information can be folded from the ForwardEntry into the corresponding InterfaceEntry.
    • Field Detail

      • metaKey

        public static int metaKey
      • initialState

        private static int initialState
        parse pragma message and place into vector v.
      • commentState

        private static int commentState
      • textState

        private static int textState
      • finalState

        private static int finalState
    • Constructor Detail

      • MetaPragma

        public MetaPragma()
    • Method Detail

      • process

        public boolean process​(java.lang.String pragma,
                               java.lang.String currentToken)
        Main entry point for the MetaPragma handler
        Specified by:
        process in class PragmaHandler
        Parameters:
        pragma - string for pragma name
        currentToken - next token in the input stream.
        Returns:
        true if this is a meta pragma.
      • processForward

        public static void processForward​(ForwardEntry forwardEntry)
        Fold the meta info from the forward entry into its corresponding interface entry.
        Parameters:
        forwardEntry - the forward entry to process
      • parseMsg

        private void parseMsg​(java.util.Vector v,
                              java.lang.String msg)