Will Hawkins
cbebcae20a
language: Remove Attributed Type
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-18 05:06:28 -04:00
Will Hawkins
979fa69ab8
Rename Project (again) And Describe Purpose
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-18 04:01:28 -04:00
Will Hawkins
12fa43d9f9
common, codegen: Implement Visitor And Use For CodeGen
...
Continuous Integration / Grammar Tests (push) Successful in 4m6s
Continuous Integration / Library Format Tests (push) Successful in 5m5s
Continuous Integration / Library Tests (push) Successful in 9m0s
Continuous Integration / Cli Tests (push) Successful in 4m57s
Implement a generic visitor for components of a P4 program and use
it to start P4 code generation (according to the behavioral model).
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-15 08:14:24 -04:00
Will Hawkins
f1f20e96a2
testing: Do Not Build Separately in Library Tests
...
Continuous Integration / Grammar Tests (push) Successful in 35s
Continuous Integration / Library Format Tests (push) Successful in 1m7s
Continuous Integration / Library Tests (push) Successful in 4m1s
Continuous Integration / Cli Tests (push) Successful in 5m47s
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-11 09:06:59 -04:00
Will Hawkins
49eef16c19
testing: Add Basic Support for Cli Testing
...
Continuous Integration / Grammar Tests (push) Successful in 3m42s
Continuous Integration / Library Format Tests (push) Successful in 4m33s
Continuous Integration / Cli Tests (push) Successful in 4m18s
Continuous Integration / Library Tests (push) Successful in 9m39s
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-11 08:57:15 -04:00
Will Hawkins
fccaf1aa92
cli: Initial _real_ Cli Work
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-11 08:56:38 -04:00
Will Hawkins
73b4f54bbe
Make Formatter Happy
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-11 07:37:23 -04:00
Will Hawkins
0e2b13be93
compiler: Support Querying For Files In Preprocessed Code
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-11 07:37:23 -04:00
Will Hawkins
f0f7a660a6
compiler: Add Ability to Annotate Preprocessed Source
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-11 07:37:18 -04:00
Will Hawkins
a0c6b7730c
documentation: Document SourceCode-related structs
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-11 07:22:17 -04:00
Will Hawkins
d28ccd79e4
common, compiler: Upgrade to SystemPackage
...
Continuous Integration / Grammar Tests (push) Successful in 35s
Continuous Integration / Library Format Tests (push) Successful in 1m16s
Continuous Integration / Library Tests (push) Successful in 4m11s
For cross-platform support.
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-07 23:43:29 -04:00
Will Hawkins
355e62d61d
testing: Update CI to Use Proper Image
...
Continuous Integration / Grammar Tests (push) Successful in 34s
Continuous Integration / Library Format Tests (push) Successful in 1m31s
Continuous Integration / Library Tests (push) Failing after 3m54s
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-07 23:10:58 -04:00
Will Hawkins
754102d601
compiler: Add Preprocessor Support
...
TODO: Test that file names are properly tracked in included
files.
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-07 23:06:41 -04:00
Will Hawkins
fac1cc4948
testing: Use Full Runners for LLVM Support in Gitea CI
...
Continuous Integration / Grammar Tests (push) Successful in 1m39s
Continuous Integration / Library Tests (push) Successful in 4m33s
Continuous Integration / Library Format Tests (push) Successful in 1m14s
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-06 08:25:49 -04:00
Will Hawkins
7308115d85
testing: Pin Tree Sitter Ref In CI
...
Continuous Integration / Grammar Tests (push) Failing after 1m22s
Continuous Integration / Library Tests (push) Failing after 1m18s
Continuous Integration / Library Format Tests (push) Failing after 1m19s
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-06 08:19:29 -04:00
Will Hawkins
ce35761efa
Make Formatter Happy
...
Continuous Integration / Grammar Tests (push) Failing after 2m26s
Continuous Integration / Library Tests (push) Failing after 18s
Continuous Integration / Library Format Tests (push) Failing after 11s
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-06 08:09:15 -04:00
Will Hawkins
d9133cf6a9
cli: Remove Darwin Dependency
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-06 08:02:21 -04:00
Will Hawkins
d6da7a519e
testing: Build With Main Snapshot Version Of Toolchain in CI
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-06 07:56:47 -04:00
Will Hawkins
3f0444a8da
testing: Build With Snapshot Version Of Toolchain in CI
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-06 07:54:54 -04:00
Will Hawkins
df7a1ac15b
testing: Build With Dev Version Of Toolchain in CI
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-06 07:48:49 -04:00
Will Hawkins
8552199ebe
testing: Skip Verifying swiftly Signature in CI
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-06 07:20:45 -04:00
Will Hawkins
a657db0b42
testing: Move to Ubuntu Runners in CI
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-06 07:14:05 -04:00
Will Hawkins
dd0bbbe479
Make Formatter Happy
...
Continuous Integration / Grammar Tests (push) Failing after 5s
Continuous Integration / Library Tests (push) Failing after 5s
Continuous Integration / Library Format Tests (push) Failing after 6s
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-04 22:25:51 -04:00
Will Hawkins
7a36ca32dd
compiler, runtime: Support Formatted Error Messages
...
Make it possible to output formatted error messages using a
flexible API that includes an ability to specify styles and
formatters.
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-04 22:24:28 -04:00
Will Hawkins
783aac26c7
compiler: Use New Error API to Accumulate Errors
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-04 22:23:52 -04:00
Will Hawkins
e4d6daa8fe
Make Formatter Happy
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-04 11:31:50 -04:00
Will Hawkins
333270deee
cli: Add Initial Cli Work
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-04 11:31:44 -04:00
Will Hawkins
73779d8074
common, testing: Add Formatting of Error Messages
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-04 11:30:05 -04:00
Will Hawkins
3d4d26d07b
Make Formatter Happy
...
Continuous Integration / Library Format Tests (push) Has been cancelled
Continuous Integration / Grammar Tests (push) Failing after 1m30s
Continuous Integration / Library Tests (push) Failing after 8s
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-04 10:34:33 -04:00
Will Hawkins
168d48fa7c
compiler, runtime: Refactor Errors
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-04 10:34:07 -04:00
Will Hawkins
b49ec104e9
compiler, runtime: Make Default Values Optional
...
For types, make it optional to return a default value. While default
values for some types are meaningful, they are not meaningful for all
types (e.g., Action, Control, Parser, Parser state, etc.).
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-04 08:35:33 -04:00
Will Hawkins
5cfe5532a2
compiler, runtime: Refactor P4DataType to P4Type
...
Now that the old P4Type is a P4QualifiedType, it makes sense to
rename the data type back to just type.
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-04 07:37:48 -04:00
Will Hawkins
7c660b2b0c
compiler, runtime: Refactor P4Type to P4QualifiedType
...
Also, refer to the different pieces of the qualified type as
qualifiers and not attributes.
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-05-04 07:29:51 -04:00
Will Hawkins
a84e778e79
Make Formatter Happy
...
Continuous Integration / Grammar Tests (push) Has been cancelled
Continuous Integration / Library Tests (push) Has been cancelled
Continuous Integration / Library Format Tests (push) Has been cancelled
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-30 18:41:01 -04:00
Will Hawkins
ed976c7855
compiler, runtime: Initial Support For Calling Controls
...
Support calling (invoking) a Control. There is still plenty more to
do here, but we are off to a good start.
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-30 18:39:52 -04:00
Will Hawkins
b934089fe7
common: Add a Table Hit/Miss Value/Type
...
When support for enums is added, we can replace this one-off.
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-30 18:38:40 -04:00
Will Hawkins
bd262e5b73
runtime: Parameterize Runtime
...
Parameterize Runtime (nee ParserRuntime) so that it can run anything
that is LibraryCallable. TODO: Refactor its API -- left mostly as
it was because changing unit tests will be laborious.
2026-04-30 18:37:21 -04:00
Will Hawkins
b97aa1af72
parser, compiler: Support Table Actions
...
Continuous Integration / Grammar Tests (push) Has been cancelled
Continuous Integration / Library Tests (push) Has been cancelled
Continuous Integration / Library Format Tests (push) Has been cancelled
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-30 05:38:29 -04:00
Will Hawkins
833979a5c9
Make Formatter Happy
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-27 09:15:31 -04:00
Will Hawkins
75da49ba7e
documentation: Rename Project (2)
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-27 09:10:47 -04:00
Will Hawkins
0012963361
documentation: Rename Project
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-27 09:08:07 -04:00
Will Hawkins
8c0c16ed87
documentation: Update Note Protocol
...
Using /// rather than simply //.
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-27 09:03:59 -04:00
Will Hawkins
0f0662709e
compiler, testing: Build System for Compilation
...
The compilation code was written as a precursor for implementation
with macros. The updates in this commit make the switch.
There is still plenty to do:
1. Comment Walker.
2. Comment Macros.
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-27 08:39:40 -04:00
Will Hawkins
f2bd53ce5f
compiler, runtime, common: (Initial) Support For extern Declarations
...
Especially FFI
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-23 06:07:54 -04:00
Will Hawkins
74fead1eba
grammar: Parse externs
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-23 06:07:54 -04:00
Will Hawkins
a2d6aa0e28
runtime: Refactor ExecutionEvaluator
...
Move as much of the common functionality of executing a block
of statements into a common area as possible.
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-23 06:07:54 -04:00
Will Hawkins
99d3d2bace
Make Formatter Happy
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-20 16:29:59 -04:00
Will Hawkins
a24571222b
runtime: Refactor Expression/Statement Evaluators
...
Allow the user to customize the evaluation/execution of expressions/
statements with something that implements functions that perform
those tasks. This additional functionality will make it possible for
the "classic" evaluator not to waste time checking for the presence
of interlopers and give implementers additional customization opportunities.
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-20 16:28:07 -04:00
Will Hawkins
47cc52ea44
documentation: Correct typo
...
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-20 06:00:52 -04:00
Will Hawkins
5a9ef6ce4d
documentation: Describe NOTEs
...
Describe how/why notes are used in the code.
Signed-off-by: Will Hawkins <hawkinsw@obs.cr >
2026-04-20 05:59:27 -04:00