Changeset 6377
- Timestamp:
- 08/20/05 15:55:47 (3 years ago)
- svk:copy_cache_prev:
- 8581
- Files:
-
- 1 modified
-
src/Pugs/Parser.hs (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Parser.hs
r6375 r6377 617 617 symbol "use" 618 618 tryChoice [ ruleUseVersion >> return emptyExp 619 , ruleUseJSANModule 620 , ruleUsePackage True >> return emptyExp 619 , ruleUsePackage True 621 620 ] 622 621 … … 635 634 636 635 {-| 636 /This may now be obsolete.../ 637 637 638 Match the package-name and import-list part of a @use@ or @no@ declaration. 638 639 … … 646 647 -} 647 648 ruleUsePackage :: Bool -- ^ @True@ for @use@; @False@ for @no@ 648 -> RuleParser ()649 -> RuleParser Exp 649 650 ruleUsePackage use = rule "use package" $ do 650 lang <- option "pugs" $ try $ do 651 lang <- ruleUsePackageLang 652 case lang of 653 "jsan" -> if use 654 then ruleUseJSANModule 655 else fail "can't 'no' a JSAN module" 656 _ -> ruleUsePerlPackage use lang 657 where 658 ruleUsePackageLang = option "pugs" $ try $ do 651 659 lang <- identifier 652 660 char ':' 653 661 notFollowedBy (char ':') 654 662 return lang 663 664 ruleUsePerlPackage :: Bool -> String -> RuleParser Exp 665 ruleUsePerlPackage use lang = rule "use perl package" $ do 655 666 names <- identifier `sepBy1` (try $ string "::") 656 667 _ <- option "" $ ruleVersionPart … … 678 689 ] 679 690 return () 680 return ()691 return emptyExp 681 692 682 693 {-| 694 /This may now be obsolete.../ 695 683 696 Match a JSAN module name, preceded by \'@jsan:@\'. Returns an appropriate 684 697 sub call 'Pugs.AST.Exp' that will load the module using subs defined in … … 694 707 ruleUseJSANModule :: RuleParser Exp 695 708 ruleUseJSANModule = do 696 string "jsan:" 697 name <- liftM (Val . VStr . concat) $ many1 $ do 698 part <- identifier 699 dot <- choice [ try $ string ".", string "" ] 700 return $ part ++ dot 709 names <- identifier `sepBy1` (try $ string ".") 710 let name = Val . VStr . concat $ intersperse "." names 701 711 choice 702 712 [ try $ do
