• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
      • Gl
      • Esim
      • Vl2014
        • Warnings
        • Primitives
        • Use-set
        • Syntax
        • Getting-started
        • Utilities
        • Loader
          • Preprocessor
          • Vl-loadconfig
          • Lexer
            • Lex-strings
            • Lex-identifiers
            • Vl-typo-uppercase-p
            • Vl-typo-number-p
            • Vl-typo-lowercase-p
            • Lex-numbers
            • Chartypes
            • Vl-lex
            • Defchar
            • Tokens
            • Lex-keywords
              • *vl-2012-keyword-table*
              • *vl-2012-keyword-table-strict*
              • Vl-keyword-lookup
              • Vl-lex-simple-identifier-or-keyword
              • *vl-2005-keyword-table*
              • *vl-2005-keyword-table-strict*
              • Vl-keyword-table-p
              • *vl-2012-keywords*
              • Vl-full-keyword-table
              • Vl-make-keyword-table
              • *vl-extra-keywords*
              • *vl-2005-keywords*
            • Lexstate
            • Make-test-tokens
            • Lexer-utils
            • Lex-comments
            • Vl-typo-uppercase-list-p
            • Vl-typo-lowercase-list-p
            • Vl-typo-number-list-p
          • Vl-loadstate
          • Parser
          • Vl-load-merge-descriptions
          • Scope-of-defines
          • Vl-load-file
          • Vl-flush-out-descriptions
          • Vl-description
          • Vl-loadresult
          • Vl-read-file
          • Vl-find-basename/extension
          • Vl-find-file
          • Vl-read-files
          • Extended-characters
          • Vl-load
          • Vl-load-main
          • Vl-load-description
          • Vl-descriptions-left-to-load
          • Inject-warnings
          • Vl-load-descriptions
          • Vl-load-files
          • Vl-load-summary
          • Vl-collect-modules-from-descriptions
          • Vl-descriptionlist
        • Transforms
        • Lint
        • Mlib
        • Server
        • Kit
        • Printer
        • Esim-vl
        • Well-formedness
      • Sv
      • Fgl
      • Vwsim
      • Vl
      • X86isa
      • Svl
      • Rtl
    • Software-verification
    • Math
    • Testing-utilities
  • Lexer

Lex-keywords

Handling of keywords in the lexer.

The lexer can be configured to accept different sets of keywords. This allows us to, e.g., recognize different keywords depending on the particular vl-edition-p we are implementing.

No matter which set of keywords is being used, the general strategy is the same: when we encounter a keyword such as inout, we will produce a vl-plaintoken-p whose type is, e.g., :vl-kwd-inout.

Subtopics

*vl-2012-keyword-table*
*vl-2012-keyword-table-strict*
Vl-keyword-lookup
Determine if a string is a Verilog keyword.
Vl-lex-simple-identifier-or-keyword
Match either a keyword or an ordinary, simple identifier.
*vl-2005-keyword-table*
*vl-2005-keyword-table-strict*
Vl-keyword-table-p
Recognize any valid subset of the vl-full-keyword-table.
*vl-2012-keywords*
IEEE STD 1800-2012, Table B-1, Reserved Keywords.
Vl-full-keyword-table
A fast alist binding all currently supported keyword names to their corresponding :vl-kwd-xxx symbols.
Vl-make-keyword-table
A keyword table binds the names of keywords (strings) to their corresponding :vl-kwd-xxx symbols.
*vl-extra-keywords*
Special, extra keywords that are aren't part of the Verilog standards, but are instead added by VL.
*vl-2005-keywords*
IEEE STD 1364-2005, Annex B, List of Keywords.