Fuzzed - a program to find DMDFE parser crash

Basile B. b2.temp at gmx.com
Sun Dec 16 05:33:30 UTC 2018


On Saturday, 15 December 2018 at 22:48:01 UTC, Neia Neutuladh 
wrote:
> The way to fix this is to replace the entire parser and get rid 
> of the idea of AST poisoning; at the first error, you give up 
> on parsing the entire file. From there, you can try recovering 
> from specific errors with proper testing.

You can still continue parsing after an error but right now many 
sub-parsers always return an AstNode instead of null. The parser 
on null sub parser result could go to the end of the scope or to 
the next statement, depending on what it expected, and continue 
from there. That being said this wouldn't always work, e.g when a 
semi colon or a curly brace misses.

Simple example:

     struct Foo
     {
         int a, b
         string c; // error because a type identifier part wasn't 
expected ...
     }             // ... we're in a aggr body so consume toks 
past the curly brace

     struct Bar
     {
     }





More information about the Digitalmars-d-announce mailing list