P. Lepin said:
In computer science and linguistics, parsing (more formally: syntactic
analysis) is the process of analyzing a sequence of tokens to determine
its grammatical structure with respect to a given formal grammar. A parser
is the component of a compiler that carries out this task.
Up to here, I see no disagreement.
Parsing transforms input text into a data structure, usually a tree, which
is suitable for later processing and which captures the implied hierarchy
of the input.
That's precisely how I always understood the nature of parsing. Could you
provide a reference to your source? Could be an interesting read.
When I studied compiler construction (in the early 1980s),
I learned from Niklaus Wirth's books what a minimal parser is.
Have a look at this (updated) book:
http://www.oberon.ethz.ch/WirthPubl/CBEAll.pdf
For example, in exercise 4.3 on page 25 he writes:
"Write a parser for EBNF and extend it with statements
generating the data structure (for table-driven parsing)
corresponding to the read syntax."
On the following pages he consistently distinguishes
between a parser (merely recognizing a language) and a translator.
This attitude is what I meant when I said that a parser is
only a "predicate". Maybe this attitude is outdated.