Path: csiph.com!xmission!usenet.csail.mit.edu!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Roger L Costello Newsgroups: comp.compilers Subject: Is it the job of a parser to validate the input data? Date: Wed, 11 Aug 2021 22:24:49 +0000 Organization: Compilers Central Lines: 27 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <21-08-010@comp.compilers> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 8bit Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="77587"; mail-complaints-to="abuse@iecc.com" Keywords: parse, question Posted-Date: 11 Aug 2021 22:25:48 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Thread-Topic: Is it the job of a parser to validate the input data? Thread-Index: AdeO/yfqE84hoTMsQgegIuM0ZDEzoQ== Accept-Language: en-US Content-Language: en-US Xref: csiph.com comp.compilers:2695 Hello Compiler Experts! There are many data formats which contain things like this: A number, N N occurrences of something For example, 3 followed by the names of three students: 3 John Doe Sally Smith Judy Jones I have a question about parsing such data. Is it the job of a parser to ensure that the number of student names matches the number? Or, is it the job of the parser to merely tokenize whatever is in the input and then create an abstract syntax tree containing the tokens? I imagine you will tell me, "it depends". But what is typically the case? /Roger [You can indeed do it either way. I prefer to do the counting in the AST creation so it can produce errors like "too few names" rather than a generic "syntax error", although putting it all in the parser makes it more likely that the language you parse is actually the language you think you're parsing. -John]