mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-09 03:02:50 -06:00
Merge AId and App forms in GFCCRaw.
This commit is contained in:
@@ -14,13 +14,12 @@ pGrammar :: P Grammar
|
||||
pGrammar = liftM Grm pTerms
|
||||
|
||||
pTerms :: P [RExp]
|
||||
pTerms = liftM2 (:) pTerm pTerms <++ (skipSpaces >> return [])
|
||||
pTerms = liftM2 (:) (pTerm 1) pTerms <++ (skipSpaces >> return [])
|
||||
|
||||
pTerm :: P RExp
|
||||
pTerm = skipSpaces >> (pApp <++ pId <++ pNum <++ pStr <++ pMeta)
|
||||
where pApp = between (char '(') (char ')')
|
||||
(liftM2 App pIdent pTerms)
|
||||
pId = liftM AId pIdent
|
||||
pTerm :: Int -> P RExp
|
||||
pTerm n = skipSpaces >> (pParen <++ pApp <++ pNum <++ pStr <++ pMeta)
|
||||
where pParen = between (char '(') (char ')') (pTerm 0)
|
||||
pApp = liftM2 App pIdent (if n == 0 then pTerms else return [])
|
||||
pStr = char '"' >> liftM AStr (manyTill (pEsc <++ get) (char '"'))
|
||||
-- FIXME: what escapes are used?
|
||||
pEsc = char '\\' >> get
|
||||
|
||||
Reference in New Issue
Block a user