X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=NewQC.md;h=b2fd90d86f6ef9fe3d570b27a6deff7259406322;hb=bdc050ca55521b34b01e750709c6e258da766349;hp=78a9b2c6620071ae7cffc9eabd8d3e5750e3d6c2;hpb=9c8ff5c8ce33f93e5a9ab014e59ec4c7d4a6ad97;p=xonotic%2Fxonotic.wiki.git diff --git a/NewQC.md b/NewQC.md index 78a9b2c..b2fd90d 100644 --- a/NewQC.md +++ b/NewQC.md @@ -1,11 +1,12 @@ New QC Syntax ============= -{{\>toc}} - It is possible that at some point we decide to switch QC-compiler which requires some changes to the code. -**For more information see** http://dev.xonotic.org/projects/bocc +~~For more information see http://dev.xonotic.org/projects/bocc~~ + +(Update: Blub's bocc compiler didn't make it, but someone else came along, both devs [joined forces](https://github.com/graphitemaster/gmqcc/graphs/contributors) and brought us [GMQCC](https://graphitemaster.github.io/gmqcc/doc.html). + This is now the QuakeC compiler used by the Xonotic project.) Clean syntax: ------------- @@ -15,16 +16,16 @@ A clean syntax is needed, the current implementation uses the following: |definition|meaning| |----------|-------| -|float foo|global variable| -|float .foo|entity field| -|.float foo|fieldpointer| -|.float .foo|entity field of type fieldpointer| -|float foo(void)|function| -|float foo\*(void)|function pointer| -|.float foo(void)|function returning a fieldpointer .float| -|.float foo\*(void)|function pointer, returning a fieldpointer .float| -|float .foo(void)|entity field of type function returning float| -|.float .foo(void)|entity field of type function returning fieldpointer| +|`float foo`|global variable| +|`float .foo`|entity field| +|`.float foo`|fieldpointer| +|`.float .foo`|entity field of type fieldpointer| +|`float foo(void)`|function| +|`float foo*(void)`|function pointer| +|`.float foo(void)`|function returning a fieldpointer .float| +|`.float foo*(void)`|function pointer, returning a fieldpointer .float| +|`float .foo(void)`|entity field of type function returning float| +|`.float .foo(void)`|entity field of type function returning fieldpointer| Function definitions: --------------------- @@ -79,10 +80,10 @@ Since menuQC has some funny macro: ACCUMULATE\_FUNCTIONS, it seemed like a nice Variadic parameters (do not use yet) ------------------------------------ -(This might get changed to be more flexible so do not rely on this syntax...) +(This might get changed to be more flexible so do not rely on this syntax…) -Another "enhancement" is the possibility to have functions with variadic parameter lists. However, the only way to sanely access them (until pointers are allowed) is via a recursive way. -Here's an example that assumes float parameters and prints them one after the other: +Another “enhancement” is the possibility to have functions with variadic parameter lists. However, the only way to sanely access them (until pointers are allowed) is via a recursive way. +Here’s an example that assumes float parameters and prints them one after the other: void printfloats(float count, float first, ...) { @@ -97,4 +98,5 @@ Here's an example that assumes float parameters and prints them one after the ot myprint(count-1, ...); } -So myprint(4, 1, 2, 3, 4) would print "1, 2, 3, 4\\n" +So `myprint(4, 1, 2, 3, 4)` would print "1, 2, 3, 4\\n" +