Symbolic Representation of C Code

The Wolfram Language's core tree-oriented symbolic structure makes it well suited to working with a hierarchical view of C code as Wolfram Language expressions. This supports the use of the Wolfram Language for the creation, manipulation, and optimization of C code. It is used extensively for the Wolfram Language's code generation tools. In addition, you can use SymbolicC for your own code manipulation purposes.

C Formatting

(PackageLink[ToCCodeString, paclet:SymbolicC/ref/ToCCodeString, SymbolicC Package Symbol]) — convert a symbolic C expression into a string of C code

(PackageLink[CComment, paclet:SymbolicC/ref/CComment, SymbolicC Package Symbol]) — symbolic representation of a comment

C Expressions

(PackageLink[CAssign, paclet:SymbolicC/ref/CAssign, SymbolicC Package Symbol]) — symbolic representation of a C assignment

(PackageLink[COperator, paclet:SymbolicC/ref/COperator, SymbolicC Package Symbol]) — symbolic representation of an operator

C Grouping Constructs

(PackageLink[CBlock, paclet:SymbolicC/ref/CBlock, SymbolicC Package Symbol]) — symbolic representation of a block of statements

(PackageLink[CProgram, paclet:SymbolicC/ref/CProgram, SymbolicC Package Symbol]) — symbolic representation of an entire program

(PackageLink[CStatement, paclet:SymbolicC/ref/CStatement, SymbolicC Package Symbol]) — symbolic representation of a statement

C Programming Constructs

(PackageLink[CDo, paclet:SymbolicC/ref/CDo, SymbolicC Package Symbol]) — symbolic representation of a do/while statement

(PackageLink[CFor, paclet:SymbolicC/ref/CFor, SymbolicC Package Symbol]) — symbolic representation of a for loop

C Type Constructs

(PackageLink[CCast, paclet:SymbolicC/ref/CCast, SymbolicC Package Symbol]) — symbolic representation of a cast

(PackageLink[CDeclare, paclet:SymbolicC/ref/CDeclare, SymbolicC Package Symbol]) — symbolic representation of a variable declaration

C Function Constructs

(PackageLink[CFunction, paclet:SymbolicC/ref/CFunction, SymbolicC Package Symbol]) — symbolic representation of a function

(PackageLink[CCall, paclet:SymbolicC/ref/CCall, SymbolicC Package Symbol]) — symbolic representation of a call to a function

(PackageLink[CReturn, paclet:SymbolicC/ref/CReturn, SymbolicC Package Symbol]) — symbolic representation of a return from a function

C Flow Control

(PackageLink[CBreak, paclet:SymbolicC/ref/CBreak, SymbolicC Package Symbol]) — symbolic representation of a break statement

(PackageLink[CContinue, paclet:SymbolicC/ref/CContinue, SymbolicC Package Symbol]) — symbolic representation of a continue statement

C Struct Access

(PackageLink[CMember, paclet:SymbolicC/ref/CMember, SymbolicC Package Symbol]) — symbolic representation of access from a struct

(PackageLink[CPointerMember, paclet:SymbolicC/ref/CPointerMember, SymbolicC Package Symbol]) — symbolic representation of access from a pointer to a struct

C Address and Dereference

(PackageLink[CAddress, paclet:SymbolicC/ref/CAddress, SymbolicC Package Symbol]) — symbolic representation of the address of an object

(PackageLink[CDereference, paclet:SymbolicC/ref/CDereference, SymbolicC Package Symbol]) — symbolic representation of the dereferencing of a pointer

(PackageLink[CArray, paclet:SymbolicC/ref/CArray, SymbolicC Package Symbol]) — symbolic representation of an array

C Preprocessor Statements

(PackageLink[CInclude, paclet:SymbolicC/ref/CInclude, SymbolicC Package Symbol]) — symbolic representation of a preprocessor include statement

(PackageLink[CDefine, paclet:SymbolicC/ref/CDefine, SymbolicC Package Symbol]) — symbolic representation of a preprocessor define