Umu logo Ume universitet
Teknisk-naturvetenskaplig fakultet
Institutionen fr datavetenskap



Laboration 0

För att en kompilator ska kunna ta emot och syntaxkontrollera en källkodsfil behövs en parser. En parser kontrollerar att reglerna för språket efterföljs. Om fel upptäcks ges någon form av felmeddelande.

Skriv ett program som tar emot en sträng med hakparenteser - [] - och runda parenteser - () - och som sedan kontrollerar att strängen följer följande regler:

Det ska finnas lika många höger- som vänsterparenteser av varje slag.

Räknat från vänster får aldrig antalet högerparenteser av någon sort överstiga antalet vänster parenteser av samma sort.

Parenteserna måste vara korrekt nästlade. ( [ ) ] är ett exempel på felaktigt nästlade parenteser.

Om fel upptäcks ska något av följande felmeddelanden skrivas ut med en layout enligt exemplet nedan:

Exempel:


(([]])
^ Förväntad )
(([]([))))
^ Förväntad ]
([])(([])))
^ Oväntad parentes
(()
^ Förväntad parentes
)))
^ Oväntad parentes

Laborationen ska utföras enskilt och vara inlämnad senast ÅÅ-MM-DD.