Wat zijn de taken van lexicale analysator hoe lexicale analysator spaties uit het bronbestand verwijdert?
Wat zijn de taken van lexicale analysator hoe lexicale analysator spaties uit het bronbestand verwijdert?

Video: Wat zijn de taken van lexicale analysator hoe lexicale analysator spaties uit het bronbestand verwijdert?

Video: Wat zijn de taken van lexicale analysator hoe lexicale analysator spaties uit het bronbestand verwijdert?
Video: Compilation - Part Two: Lexical Analysis 2024, November
Anonim

De taak van lexicale analysator (of soms gewoon scanner genoemd) is om tokens te genereren. Dit wordt eenvoudig gedaan door de hele code te scannen (op lineaire wijze door deze bijvoorbeeld in een array te laden) van het begin tot het einde symbool voor symbool en ze te groeperen in tokens.

Evenzo vragen mensen: wat zijn de taken van de lexicale analysator?

Als de eerste fase van een compiler is de belangrijkste taak van de lexicale analysator is om de invoertekens van het bronprogramma te lezen, ze in lexemen te groeperen en als uitvoer een reeks tokens te produceren voor elk lexeme in het bronprogramma. De stroom tokens wordt verzonden naar de parser voor syntaxis analyse.

Ten tweede, wat is de output van lexicale analysator? (ik) De uitvoer van een lexicale analysator zijn tokens. (II) Totaal aantal tokens in printf("i=%d, &i=%x", i, &i); are 10. (III) Symbooltabel kan worden geïmplementeerd met behulp van array, hashtabel, boomstructuur en gekoppelde lijsten.

Wat zijn dus de mogelijke foutherstelacties in lexicale analysator?

Herstel van een fout in Lexicale analysator Hier zijn een paar meest voorkomende herstel van een fout technieken: Verwijdert één teken uit de resterende invoer. In de paniekmodus worden de opeenvolgende karakters altijd genegeerd totdat we een goed gevormd token bereiken. Door het ontbrekende teken in te voegen in de resterende invoer.

Hoe implementeren we lexicale analysator?

Lexicale analyse kan zijn geïmplementeerd met de deterministische eindige automaten.

  1. Lexicale analysator leest eerst int en vindt het geldig en accepteert als token.
  2. max wordt erdoor gelezen en blijkt een geldige functienaam te zijn na het lezen (
  3. int is ook een token, dan weer i als een ander token en tenslotte;

Aanbevolen: