quakeforge/tools/qfcc/source
Bill Currie 99b1859aac [qfcc] Parse the spirv grammar json files
I really don't like the way they're included (I'm really looking forward
to #embed, but gotta wait for gcc 15), and I'm a tad grumpy that the
documentation for them
(https://registry.khronos.org/SPIR-V/specs/unified1/MachineReadableGrammar.html)
is wrong (missing fields), but I think I like the result.

The grammars (core and glsl.std.450) are parsed into structs that should
be fairly easy to interpret: the instructions, kinds, and enumerant
values are sorted by name for search with bsearch. Having the data
parsed in means source code can refer to the items by name rather than
magic numbers, which will be very nice for intrinsics and image types
(and probably a few other things).
2025-01-07 03:26:12 +09:00
..
.indent.pro indent whitespace cleanup. not perfect, but a bit more consistent now 2001-12-06 19:49:40 +00:00
algebra.c [qfcc] Apply suspenders and a belt to the dimension check 2024-09-24 11:17:01 +09:00
attribute.c [qfcc] Allow single-constant attribute values 2024-09-20 12:28:02 +09:00
class.c [qfcc] Resurrect is_function 2025-01-03 17:52:19 +09:00
codespace.c [gamecode] Move progs auxiliary headers into a subdirectory 2022-01-09 00:26:52 +09:00
constfold.c [qfcc] Parse vector literals correctly 2024-09-03 20:50:31 +09:00
cpp.c [win] Fix some bitrot for building 2024-09-24 19:49:41 +09:00
dags.c [qfcc] Improve support for matrix types 2024-09-05 14:06:30 +09:00
debug.c [qfcc] Fix some glsl parsing issues 2024-09-01 17:02:42 +09:00
def.c [qfcc] Remove convert_name 2024-12-07 18:35:01 +09:00
defspace.c [qfcc] Separate out backend function building 2024-11-03 16:58:10 +09:00
diagnostic.c Merge branch 'master' into wip-ruaspirv 2024-04-18 09:46:10 +09:00
disassemble.c [qfprogs] Create a stack for disassembly of locals 2023-09-12 22:21:55 +09:00
dot.c [qfcc] Make expressions const-correct 2023-09-29 10:15:59 +09:00
dot_dag.c [qfcc] Avoid (null) labels for dot graphs 2024-10-01 14:30:09 +09:00
dot_expr.c [qfcc] Rework function/pointer/array declarations 2025-01-03 13:22:29 +09:00
dot_flow.c [qfcc] Avoid (null) labels for dot graphs 2024-10-01 14:30:09 +09:00
dot_sblock.c [qfcc] Avoid (null) labels for dot graphs 2024-10-01 14:30:09 +09:00
dot_type.c [qfcc] Use count for number of array elements 2024-11-17 15:27:10 +09:00
dump_globals.c [qfcc] Use count for number of array elements 2024-11-17 15:27:10 +09:00
dump_lines.c [gamecode] Use a struct for offset/count pairs 2022-01-26 19:30:25 +09:00
dump_modules.c [gamecode] Use a struct for offset/count pairs 2022-01-26 19:30:25 +09:00
dump_strings.c [qfprogs] Dump hex for non-ascii chars 2022-12-10 21:53:00 +09:00
embed.py [qfcc] Parse the spirv grammar json files 2025-01-07 03:26:12 +09:00
emit.c [qfcc] Make the type union anonymous 2024-08-16 17:23:29 +09:00
evaluate.c [qfcc] Clear current function for constexpr evaluation 2024-12-05 00:10:15 +09:00
evaluate_type.c [qfcc] Move type encoding defs into an array 2024-09-15 12:05:57 +09:00
expr.c [qfcc] Resurrect is_function 2025-01-03 17:52:19 +09:00
expr_algebra.c [qfcc] Ensure processed expressions are dagged 2025-01-03 02:34:15 +09:00
expr_assign.c [qfcc] Implement inline function calls 2024-12-11 03:16:15 +09:00
expr_binary.c [qfcc] Remove convert_name 2024-12-07 18:35:01 +09:00
expr_bool.c [qfcc] Remove convert_name 2024-12-07 18:35:01 +09:00
expr_call.c [qfcc] Rework function/pointer/array declarations 2025-01-03 13:22:29 +09:00
expr_cast.c [qfcc] Rework function/pointer/array declarations 2025-01-03 13:22:29 +09:00
expr_compound.c [qfcc] Implement compound initializers for spir-v 2024-11-17 22:45:18 +09:00
expr_construct.c [qfcc] Dereference constructor parameters 2024-12-11 23:22:28 +09:00
expr_dag.c [qfcc] Check implicit is the same for dagged values 2025-01-03 13:22:29 +09:00
expr_obj.c [qfcc] Propagate rua_ctx_t to more functions 2024-12-23 22:03:47 +09:00
expr_optimize.c [qfcc] Respect parentheses when scattering sums 2024-09-30 13:51:52 +09:00
expr_process.c [qfcc] Update generic handling for the new type scheme 2025-01-03 21:27:28 +09:00
expr_type.c [qfcc] Add type_process for type functions 2025-01-03 17:55:08 +09:00
expr_unary.c [qfcc] Remove convert_name 2024-12-07 18:35:01 +09:00
expr_vector.c [qfcc] Defer Ruamoko semantics processing 2024-12-07 02:38:00 +09:00
flow.c [qfcc] Use the called function for ruamoko progs 2024-11-18 03:42:26 +09:00
function.c [qfcc] Update generic handling for the new type scheme 2025-01-03 21:27:28 +09:00
glsl-attribute.c [qfcc] Do basic error checking on layout qualifiers 2024-09-10 19:03:13 +09:00
glsl-block.c [qfcc] Give anonymous block instances a name 2024-12-11 23:22:05 +09:00
glsl-builtins.c [qfcc] Add an @construct type function 2024-12-11 13:54:11 +09:00
glsl-declaration.c [qfcc] Rework function/pointer/array declarations 2025-01-03 13:22:29 +09:00
glsl-layout.c [qfcc] Clean up the errors for some layout qualifiers 2024-11-21 19:18:13 +09:00
glsl-parse.y [qfcc] Update glsl function declaration handling 2025-01-03 21:58:33 +09:00
glsl-sub_comp.c [qfcc] Implement many glsl qualifiers as attributes 2024-09-09 20:01:06 +09:00
glsl-sub_frag.c [qfcc] Implement many glsl qualifiers as attributes 2024-09-09 20:01:06 +09:00
glsl-sub_geom.c [qfcc] Implement many glsl qualifiers as attributes 2024-09-09 20:01:06 +09:00
glsl-sub_tesc.c [qfcc] Implement many glsl qualifiers as attributes 2024-09-09 20:01:06 +09:00
glsl-sub_tese.c [qfcc] Implement many glsl qualifiers as attributes 2024-09-09 20:01:06 +09:00
glsl-sub_vert.c [qfcc] Implement many glsl qualifiers as attributes 2024-09-09 20:01:06 +09:00
grab.c [util] Record allocated blocs for ALLOC 2023-03-05 18:31:30 +09:00
idstuff.c [gamecode] Use a struct for offset/count pairs 2022-01-26 19:30:25 +09:00
linker.c Merge branch 'master' into wip-ruaspirv 2024-04-18 09:46:10 +09:00
Makemodule.am [qfcc] Parse the spirv grammar json files 2025-01-07 03:26:12 +09:00
method.c [qfcc] Resurrect is_function 2025-01-03 17:52:19 +09:00
obj_file.c [qfcc] Use count for number of array elements 2024-11-17 15:27:10 +09:00
obj_type.c [qfcc] Use count for number of array elements 2024-11-17 15:27:10 +09:00
opcodes.c [qfcc] Correct a typo in a comment 2024-11-28 21:05:34 +09:00
options.c [qfcc] Start properly separating target code 2024-10-06 14:29:02 +09:00
pragma.c [qfcc] Separate out backend function building 2024-11-03 16:58:10 +09:00
pre-parse.y [qfcc] Use a context object to hold current language 2024-12-07 23:55:48 +09:00
qc-lex.l [qfcc] Allow languages to hook number parsing 2025-01-04 12:51:30 +09:00
qc-parse.y [qfcc] Update generic handling for the new type scheme 2025-01-03 21:27:28 +09:00
qfcc.c [qfcc] Propagate rua_ctx_t to more functions 2024-12-23 22:03:47 +09:00
qfpreqcc Better handling of progs.dat and line numbers. 2012-11-15 15:04:51 +09:00
qfprogs.c [qfprogs] Create a stack for disassembly of locals 2023-09-12 22:21:55 +09:00
qp-lex.l [qfcc] Use deferred semantics for quake pascal 2024-12-08 19:12:04 +09:00
qp-parse.y [qfcc] Resurrect is_function 2025-01-03 17:52:19 +09:00
reloc.c [qfcc] Use rua_loc_t for most location information 2023-11-06 14:25:20 +09:00
rua-declaration.c [qfcc] Propagate rua_ctx_t to more functions 2024-12-23 22:03:47 +09:00
shared.c [qfcc] Use a separate enum for glsl interfaces 2024-09-09 11:40:57 +09:00
spirv_grammar.c [qfcc] Parse the spirv grammar json files 2025-01-07 03:26:12 +09:00
statements.c [qfcc] Use raw symbols for field names 2024-12-08 00:03:12 +09:00
strpool.c [qfcc] Make save_string null-safe 2024-07-07 15:18:51 +09:00
struct.c [qfcc] Support struct/enum/handle in type_ref 2024-12-23 21:44:07 +09:00
stub.c [qfcc] Clean up some overzealous const correctness 2024-11-21 08:30:47 +09:00
switch.c [qfcc] Remove convert_name 2024-12-07 18:35:01 +09:00
symtab.c [qfcc] Resurrect is_function 2025-01-03 17:52:19 +09:00
target.c [qfcc] Make max_params a code option 2024-10-11 10:01:45 +09:00
target_rua.c [qfcc] Use a context object to hold current language 2024-12-07 23:55:48 +09:00
target_spirv.c [qfcc] Handle integral aliases in spir-v 2024-12-13 15:02:22 +09:00
target_v6.c [qfcc] Defer Ruamoko semantics processing 2024-12-07 02:38:00 +09:00
type.c [qfcc] Rework function/pointer/array declarations 2025-01-03 13:22:29 +09:00
value.c [qfcc] Fix an overflow for matrix values 2024-12-05 00:22:38 +09:00