• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Wp-gen
      • Dimacs-reader
      • Pfcs
      • Legacy-defrstobj
      • 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
      • Proof-checker-array
      • Soft
      • Farray
      • Rp-rewriter
      • Instant-runoff-voting
      • Imp-language
      • Sidekick
      • Ethereum
      • Leftist-trees
      • Java
      • Riscv
      • Taspi
      • Bitcoin
      • Zcash
      • Des
      • X86isa
      • Sha-2
      • Yul
      • Proof-checker-itp13
      • Regex
      • ACL2-programming-language
      • Json
      • Jfkr
      • Equational
      • Cryptography
      • Axe
      • Poseidon
      • Where-do-i-place-my-book
      • Aleo
      • Bigmems
      • Builtins
      • Execloader
      • Solidity
      • Paco
      • Concurrent-programs
      • Bls12-377-curves
    • Debugging
    • Community
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
    • 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.