#pre-processor #sane #shaders #comments #language #operator #sse2

preproc

一个用于着色器和任何其他语言的合理预处理程序

7次发布

0.2.0 2023年4月7日
0.1.6 2023年4月7日
0.1.5 2022年8月6日
0.1.4 2022年7月16日

#380图形API

每月 35 次下载

MIT/Apache

61KB
1.5K SLoC

preproc

简单且可配置的SIMD预处理程序,吞吐量高达3 GiB/s

怪癖和其他注意事项

  • 仅布尔值
  • 仅UTF-8
  • 需要SSE2,目前不支持NEON
  • 空白被视为 ' ' (0x20)'\t' (0x09)
  • 不支持多行注释,(在某些情况下它们可以工作,但最好避免使用)
  • 一元运算符可以放在左侧,例如 !a == a!!(a && b) == (a && b)!
  • 表达式被松散地解析,例如 b && a c! || 被解析为 (b || (a && !(c)))

示例

//#if MY_MACRO // this directive is commented out
#if MY_OTHER_MACRO || MY_MACRO // this directive is active, single line comments are fine
// your code here
            #endif // doesn't care about white spaces as long the '#' is the frist char in the line
// invalid multiline comments
/*#if MY_MACRO // won't be treated as a directive and won't be able to output the right code
// your code here
#endif*/

// valid multiline comments styles
/*
#if MY_MACRO
// your code here
#endif*/

/*
#if MY_MACRO
// your code here
#endif
*/

使用方法

依赖关系

~2MB
~31K SLoC