-
Notifications
You must be signed in to change notification settings - Fork 397
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
async validation via context-free grammar #7922
async validation via context-free grammar #7922
Conversation
All right, this is (if all tests pass) good to go :) |
I made it so when checking if something completes, it checks both sides of And it picks out cancel-effects that aren't async, as well (picked up a couple more errors with that one). ok, now I'm done. |
I wrote a parser for our card data to try and pick out
This is added in as a unit test, and (for now) only covers the card data (I'll look at expanding it to some of the core files later maybe)
And I'm also fixing the bugs it picks up.
What I picked up so far:
SYNC BRE, Calibration Testing, Dummy Box, Uninstall, Helheim Servers
(I fixed all of these)Brasilia Govt. Grid, Ash, Angelique, Adrian, The Back, Street Magic, Stim Dealer, PolOp, Dadiana, Climactic Showdown, Chatergee University, Utae, Umbrella, Persephone, ... and lots more - there were ~70 or so
- I fixed all those too:effect
function should terminate (complete it's eid, or call a function that does), or continue to another ability (via continue-ability).if, if-not, if-let
, then there should be two members which both terminatewhen, when-not, when-let
, then we've made a mistake, because that can fail to terminatecondp
,cond
,case
andcond+
terminate, where they exist (doesn't check that an :else/fallback actually exists though - whether that's needed is unknowable by a grammar)This adds the instaparse package as a dev dependency - see: https://github.com/Engelberg/instaparse
Essentially this should help us pick out (most) async errors before shipping code in the future.