platinum-parsing-0.1.0.0: test/PPTest/Templates/Lr.hs
module PPTest.Templates.Lr (specs) where
import qualified Data.List as L
import PP
import PP.Builders.Lalr
import PP.Templates.Lr as Lr
import System.IO
import Test.Hspec
r0 = Rule "__start" [NonTerm "E", Empty]
r1 = Rule "E" [NonTerm "T", Term '+', NonTerm "E", Empty]
r2 = Rule "E" [NonTerm "T", Empty]
r3 = Rule "T" [NonTerm "F", Term '*', NonTerm "T", Empty]
r4 = Rule "T" [NonTerm "F", Empty]
r5 = Rule "F" [Term '(', NonTerm "E", Term ')', Empty]
r6 = Rule "F" [Term 'x', Empty]
rs = ruleSet [r0, r1, r2, r3, r4, r5, r6]
fs = firstSet rs
c = collection rs fs :: LrCollection LalrItem
Right t = table c
specs = describe "PPTest.Templates.Lr" $
it "should compile correctly a template" $ do
te <- readFile "test/res/lr-table"
e <- readFile "test/res/lr-table.test"
compile (Lr.context t) te `shouldBe` e