• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Set
        • C
          • Syntax-for-tools
            • Formalized-subset
            • Mapping-to-language-definition
            • Input-files
            • Compilation-database
            • Printer
              • Print-exprs/decls/stmts
              • Print-expr
              • Pristate
              • Print-dec/oct/hex-const
              • Priopt
              • Print-fundef
              • Print-filepath-transunit-map
              • Print-s-char
              • Print-c-char
              • Print-q-char
              • Print-h-char
              • Print-fileset
              • Print-typequal/attribspec-list-list
              • Print-file
              • Print-hex-core-fconst
              • Print-dec-core-fconst
              • Print-ident-list
              • Print-fsuffix
              • Print-oct-digit-achar
              • Print-label-declaration-list
              • Print-hex-frac-const
              • Print-hex-digit-achar
              • Print-dec-frac-const
              • Print-dec-digit-achar
              • Print-asm-clobber-list
              • Print-stringlit-list
              • Print-inc/dec-op-list
              • Print-astring
              • Print-asm-name-spec
              • Print-univ-char-name
              • Print-struni-spec
              • Print-simple-escape
              • Print-label-declaration
              • Print-isuffix-option
              • Print-fsuffix-option
              • Print-extdecl-list
              • Print-eprefix-option
              • Print-dec-expo-option
              • Print-cprefix-option
              • Print-binop
              • Print-attrib-name
              • Print-type-qual
              • Print-s-char-list
              • Print-q-char-list
              • Print-indent
              • Print-ident
              • Print-h-char-list
              • Print-dec-expo-prefix
              • Print-char
              • Print-c-char-list
              • Print-bin-expo-prefix
              • Print-asm-qual-list
              • Print-stringlit
              • Print-stor-spec
              • Print-sign-option
              • Print-oct-escape
              • Print-header-name
              • Print-extdecl
              • Print-escape
              • Print-cconst
              • Print-asm-qual
              • Print-asm-clobber
              • Init-pristate
              • Dec-pristate-indent
              • Print-isuffix
              • Print-fun-spec
              • Print-fconst
              • Print-dec-expo
              • Print-bin-expo
              • Print-unop
              • Print-transunit
              • Print-new-line
              • Print-lsuffix
              • Print-inc/dec-op
              • Print-hex-quad
              • Print-eprefix
              • Print-cprefix
              • Print-usuffix
              • Print-iconst
              • Print-hprefix
              • Print-const
              • Print-comp-stmt
              • Print-hex-digit-achars
              • Print-sign
              • Print-oct-digit-achars
              • Print-dec-digit-achars
              • Print-chars
              • Inc-pristate-indent
              • Print-expr-list
              • Print-struct-declon-list
              • Print-stmt
              • Print-param-declor
              • Print-dirdeclor
              • Default-priopt
              • Print-struct-declor
              • Print-initer
              • Print-decl-inline
              • Print-struct-declon
              • Print-genassoc-list
              • Print-enum-spec
              • Print-absdeclor
              • Print-typequal/attribspec-list
              • Print-desiniter-list
              • Print-const-expr
              • Print-attrib
              • Print-tyname
              • Print-struct-declor-list
              • Print-spec/qual-list
              • Print-param-declon-list
              • Print-param-declon
              • Print-initdeclor-list
              • Print-designor-list
              • Print-decl-spec-list
              • Print-decl-list
              • Print-attrib-spec-list
              • Print-asm-output-list
              • Print-asm-input-list
              • Print-typequal/attribspec
              • Print-statassert
              • Print-spec/qual
              • Print-member-designor
              • Print-initdeclor
              • Print-enumer-list
              • Print-dirabsdeclor
              • Print-desiniter
              • Print-decl-spec
              • Print-decl
              • Print-block-item-list
              • Print-attrib-spec
              • Print-attrib-list
              • Print-asm-output
              • Print-align-spec
              • Print-type-spec
              • Print-label
              • Print-genassoc
              • Print-enumer
              • Print-designor
              • Print-declor
              • Print-block-item
              • Print-asm-stmt
              • Print-asm-input
            • Output-files
            • Abstract-syntax-operations
            • Implementation-environments
            • Abstract-syntax
            • Concrete-syntax
            • Disambiguation
            • Validation
            • Gcc-builtins
            • Preprocessing
            • Parsing
          • Atc
          • Transformation-tools
          • Language
          • Representation
          • Insertion-sort
          • Pack
        • Soft
        • Bv
        • Imp-language
        • Ethereum
        • Event-macros
        • Java
        • Riscv
        • Bitcoin
        • Zcash
        • Yul
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
        • File-io-light
        • Cryptography
        • Number-theory
        • Axe
        • Lists-light
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Syntax-for-tools

Printer

Printing for our C syntax for tools.

We provide an executable (pretty-)printer from the abstract syntax to the concrete syntax.

Currently the printer is neither verified nor proof-generating, but we plan to work towards these goals.

Subtopics

Print-exprs/decls/stmts
Print expressions, declarations, statements, and related entities.
Print-expr
Print an expression.
Pristate
Fixtype of printer states.
Print-dec/oct/hex-const
Print a decimal, octal, or hexadecimal constant.
Priopt
Fixtype of printer options.
Print-fundef
Print a function definition.
Print-filepath-transunit-map
Print the files in a file set.
Print-s-char
Print a character or escape sequence usable in string literals.
Print-c-char
Print a character or escape sequence usable in character constants.
Print-q-char
Print a character usable in header names in double quotes.
Print-h-char
Print a character usable in header names in angle brackets.
Print-fileset
Print a file set.
Print-typequal/attribspec-list-list
Print a list or one or more lists of type qualifiers and attribute specifiers corresponding to a `pointer' in the grammar.
Print-file
Print (the data bytes of) a file.
Print-hex-core-fconst
Print a hexadecimal core floating constant.
Print-dec-core-fconst
Print a decimal core floating constant.
Print-ident-list
Print a list of one or more identifiers, separated by commas.
Print-fsuffix
Print a floating suffix.
Print-oct-digit-achar
Print an ACL2 octal digit character.
Print-label-declaration-list
Print zero or more label declarations.
Print-hex-frac-const
Print a hexadecimal fractional constant.
Print-hex-digit-achar
Print an ACL2 hexadecimal digit character.
Print-dec-frac-const
Print a decimal fractional constant.
Print-dec-digit-achar
Print an ACL2 decimal digit character.
Print-asm-clobber-list
Print a list of one or more assembler clobbers, separated by commas.
Print-stringlit-list
Print a list of one or more string literals, separated by spaces.
Print-inc/dec-op-list
Print a list of zero or more increment or decrement operators.
Print-astring
Print the characters from an ACL2 string.
Print-asm-name-spec
Print an assembler name specifier.
Print-univ-char-name
Print a universal character name.
Print-struni-spec
Print a structure or union specifier.
Print-simple-escape
Print a simple escape.
Print-label-declaration
Print a label declaration consisting of one or more labels.
Print-isuffix-option
Print an optional integer suffix.
Print-fsuffix-option
Print an optional floating suffix.
Print-extdecl-list
Print a list of zero or more external declarations.
Print-eprefix-option
Print an optional encoding prefix.
Print-dec-expo-option
Print an optional decimal exponent.
Print-cprefix-option
Print an optional character constant prefix.
Print-binop
Print a binary operator.
Print-attrib-name
Print an attribute name.
Print-type-qual
Print a type qualifier.
Print-s-char-list
Print a list of zero or more characters or escape sequences usable in string literals.
Print-q-char-list
Print a list of zero or more characters usable in header names in double quotes.
Print-indent
Print an indentation.
Print-ident
Print an identifier.
Print-h-char-list
Print a list of zero or more characters usable in header names in angle brackets.
Print-dec-expo-prefix
Print a decimal exponent prefix.
Print-char
Print a character.
Print-c-char-list
Print a list of zero or more characters or escape sequences usable in character constants.
Print-bin-expo-prefix
Print a binary exponent prefix.
Print-asm-qual-list
Print a list of one or more assembler specifiers.
Print-stringlit
Print a string literal.
Print-stor-spec
Print a storage class specifier.
Print-sign-option
Print an optional sign.
Print-oct-escape
Print an octal escape.
Print-header-name
Printe a header name.
Print-extdecl
Print an external declaration.
Print-escape
Print an escape sequence.
Print-cconst
Print a character constant.
Print-asm-qual
Print an assembler qualifier.
Print-asm-clobber
Print an assembler clobber.
Init-pristate
Initial printer state.
Dec-pristate-indent
Decrease the printer state's indentation level by one.
Print-isuffix
Print an integer suffix.
Print-fun-spec
Print a function specifier.
Print-fconst
Print a floating constant.
Print-dec-expo
Print a decimal exponent.
Print-bin-expo
Print a binary exponent.
Print-unop
Print a unary operator.
Print-transunit
Print a translation unit.
Print-new-line
Print a new-line character.
Print-lsuffix
Print a length suffix.
Print-inc/dec-op
Print an increment or decrement operator.
Print-hex-quad
Print a quadruple of hexadecimal digits.
Print-eprefix
Print an encoding prefix.
Print-cprefix
Print a character constant prefix.
Print-usuffix
Print an unsigned suffix.
Print-iconst
Print an integer constant.
Print-hprefix
Print a hexadecimal prefix.
Print-const
Print a constant.
Print-comp-stmt
Print a compound statement.
Print-hex-digit-achars
Print zero or more ACL2 hexadecimal digit characters.
Print-sign
Print a sign.
Print-oct-digit-achars
Print zero or more ACL2 octal digit characters.
Print-dec-digit-achars
Print zero or more ACL2 decimal digit characters.
Print-chars
Print zero or more characters.
Inc-pristate-indent
Increase the printer state's indentation level by one.
Print-expr-list
Print a list of one or more expressions, separated by commas.
Print-struct-declon-list
Print a list of one or more structure declarations, separated by spaces.
Print-stmt
Print a statement, in one or more lines, with proper indentation.
Print-param-declor
Print a parameter declarator.
Print-dirdeclor
Print a direct declarator.
Default-priopt
Default printer options.
Print-struct-declor
Print a structure declarator.
Print-initer
Print an initializer.
Print-decl-inline
Print a declaration, inline.
Print-struct-declon
Print a structure declaration.
Print-genassoc-list
Print a list of one or more generic associations, separated by commas.
Print-enum-spec
Print an enueration specifier.
Print-absdeclor
Print an abstract declarator.
Print-typequal/attribspec-list
Print a list of one or more type qualifiers and attribute specifiers, separated by spaces.
Print-desiniter-list
Print a list of one or more initializers with optional designations, separated by commas.
Print-const-expr
Print a constant expression.
Print-attrib
Print a GCC attribute.
Print-tyname
Print a type name.
Print-struct-declor-list
Print a list of one or more structure declarators, separated by commas.
Print-spec/qual-list
Print a list of one or more specifiers and qualifiers, separated by spaces.
Print-param-declon-list
Print a list of one or more parameter declarations, separated by commas.
Print-param-declon
Print a parameter declaration.
Print-initdeclor-list
Print a list of one or more initializer declarators, separated by commas.
Print-designor-list
Print a list of one or more designators.
Print-decl-spec-list
Print a list of one or more declaration specifiers, separated by spaces.
Print-decl-list
Print a list of one or more declarations, one per line, all with the same indentation.
Print-attrib-spec-list
Print a list of one or more attribute specifiers, separated by single spaces.
Print-asm-output-list
Print a list of one or more assembler output operands, separated by commas.
Print-asm-input-list
Print a list of one or more assembler input operands, separated by commas.
Print-typequal/attribspec
Print a type qualifier or attribute specifier.
Print-statassert
Print a static assertion declaration.
Print-spec/qual
Print a specifier or qualifier.
Print-member-designor
Print a member designator.
Print-initdeclor
Print an initializer declarator.
Print-enumer-list
Print a list of one or more enumerators, separated by commas.
Print-dirabsdeclor
Print a direct abstract declarator.
Print-desiniter
Print an initializer with optional designations.
Print-decl-spec
Print a declaration specifier.
Print-decl
Print a declaration, in its own indented line.
Print-block-item-list
Print a list of zero or more block items.
Print-attrib-spec
Print an attribute specifier.
Print-attrib-list
Print a list of one or more GCC attributes, comma-separated.
Print-asm-output
Print an assembler output operand.
Print-align-spec
Print an alignment specifier.
Print-type-spec
Print a type specifier.
Print-label
Print a label.
Print-genassoc
Print a generic association.
Print-enumer
Print an enumerator.
Print-designor
Print a designator.
Print-declor
Print a declarator.
Print-block-item
Print a block item.
Print-asm-stmt
Print an assembler statement.
Print-asm-input
Print an assembler input operand.