typst 0.4 → 0.5
raw patch · 69 files changed
+717/−227 lines, 69 files
Files
- CHANGELOG.md +21/−0
- src/Typst/Evaluate.hs +12/−6
- src/Typst/Methods.hs +7/−1
- src/Typst/Module/Standard.hs +6/−1
- src/Typst/Parse.hs +15/−9
- src/Typst/Syntax.hs +3/−3
- src/Typst/Types.hs +9/−0
- test/out/compiler/array-13.out +2/−2
- test/out/compiler/closure-05.out +2/−1
- test/out/compiler/dict-00.out +2/−2
- test/out/compiler/dict-01.out +9/−9
- test/out/compiler/dict-03.out +4/−4
- test/out/compiler/dict-05.out +5/−5
- test/out/compiler/field-00.out +2/−2
- test/out/compiler/for-00.out +2/−2
- test/out/compiler/for-01.out +4/−4
- test/out/compiler/import-00.out +6/−2
- test/out/compiler/import-01.out +1/−1
- test/out/compiler/import-02.out +1/−1
- test/out/compiler/import-03.out +1/−1
- test/out/compiler/import-05.out +2/−1
- test/out/compiler/import-06.out +5/−4
- test/out/compiler/let-16.out +3/−3
- test/out/compiler/let-17.out +5/−5
- test/out/compiler/let-18.out +5/−4
- test/out/compiler/let-19.out +1/−1
- test/out/compiler/let-21.out +2/−2
- test/out/compiler/ops-01.out +6/−6
- test/out/compiler/ops-08.out +8/−5
- test/out/compiler/ops-13.out +4/−2
- test/out/compiler/show-selector-00.out +7/−5
- test/out/compiler/spread-03.out +2/−2
- test/out/compiler/string-13.out +12/−12
- test/out/compute/data-08.out +2/−2
- test/out/compute/data-10.out +2/−2
- test/out/compute/data-12.out +21/−16
- test/out/layout/page-03.out +2/−2
- test/out/layout/page-margin-01.out +10/−6
- test/out/layout/page-marginals-00.out +4/−4
- test/out/layout/par-justify-cjk-03.out +2/−1
- test/out/meta/counter-page-00.out +2/−2
- test/out/meta/link-08.out +3/−3
- test/out/meta/query-before-after-00.out +2/−2
- test/out/meta/query-before-after-01.out +2/−2
- test/out/meta/query-figure-00.out +2/−2
- test/out/meta/query-header-00.out +2/−2
- test/out/regression/issue19.out +89/−0
- test/out/regression/issue20.out +63/−0
- test/out/regression/issue21.out +68/−0
- test/out/regression/issue21b.out +83/−0
- test/out/regression/issue23.out +77/−0
- test/out/regression/issue3.out +4/−4
- test/out/text/features-07.out +1/−1
- test/out/text/raw-code-04.out +2/−2
- test/out/visualize/shape-ellipse-01.out +2/−2
- test/out/visualize/shape-fill-stroke-02.out +4/−4
- test/out/visualize/shape-rect-01.out +12/−9
- test/out/visualize/stroke-00.out +6/−6
- test/out/visualize/stroke-01.out +6/−5
- test/out/visualize/stroke-02.out +6/−6
- test/out/visualize/stroke-03.out +17/−17
- test/out/visualize/stroke-04.out +13/−13
- test/out/visualize/stroke-07.out +3/−3
- test/typ/regression/issue19.typ +7/−0
- test/typ/regression/issue20.typ +5/−0
- test/typ/regression/issue21.typ +2/−0
- test/typ/regression/issue21b.typ +4/−0
- test/typ/regression/issue23.typ +10/−0
- typst.cabal +1/−1
CHANGELOG.md view
@@ -1,5 +1,26 @@ # Revision history for typst-hs +## 0.5++ * Support "as" keyword in imports (#21).+ [API change] In Typst.Syntax, the Imports type now contains+ fields for an optional "as" identifier.++ * Support version type (#21).+ [API change] Add VVersion constructor to Val, TVersion to ValType.+ Support the `version` constructor function and the `at` method (#21).++ * Parser: Ensure that `set` rule doesn't pick up `if` on next line (#23).++ * Parser: Allow multiline strings (#20).++ * Allow function applications in dictionary key construction (#19).+ [API change]: in Typst.Syntax, the Dict constructor for Expr+ now takes type `[Spreadable (Expr, Expr)]` instead of+ `[Spreadable (Identifier, Expr)]`. This is because the key+ identifiers sometimes are not known at parse time and must+ be computed in Evaluate.+ ## 0.4 * `evaluateTypst` now returns a single Content instead of a sequence
src/Typst/Evaluate.hs view
@@ -482,8 +482,12 @@ ( \m v -> do case v of Reg (k, e) -> do+ k' <- case k of+ Ident i -> pure i+ _ -> do VString s <- evalExpr k+ pure $ Identifier s val <- evalExpr e- pure $ m OM.|> (k, val)+ pure $ m OM.|> (k', val) Spr y -> do val <- evalExpr y case val of@@ -837,13 +841,15 @@ _ -> fail "Import requires a path or module or function" case imports of AllIdentifiers -> importModule modmap- SomeIdentifiers idents -> do- let addFromModule m ident =+ SomeIdentifiers pairs -> do+ let addFromModule m (ident, mbAs) = case M.lookup ident modmap of Nothing -> fail $ show ident <> " not defined in module"- Just v -> pure $ M.insert ident v m- foldM addFromModule mempty idents >>= importModule- NoIdentifiers -> addIdentifier modid (VModule modid modmap)+ Just v -> pure $ M.insert (fromMaybe ident mbAs) v m+ foldM addFromModule mempty pairs >>= importModule+ NoIdentifiers mbAs -> do+ let ident = fromMaybe modid mbAs+ addIdentifier ident (VModule ident modmap) pure VNone Include e -> do argval <- evalExpr e
src/Typst/Methods.hs view
@@ -19,7 +19,7 @@ import Data.List (intersperse, sort, sortOn) import qualified Data.Map as M import qualified Data.Map.Ordered as OM-import Data.Maybe (fromMaybe)+import Data.Maybe (fromMaybe, listToMaybe) import Data.Text (Text) import qualified Data.Text as T import qualified Data.Vector as V@@ -380,6 +380,12 @@ "term" -> pure $ VContent t "description" -> pure $ VContent d _ -> noMethod "TermItem" fld+ VVersion xs ->+ case fld of+ "at" -> pure $ makeFunction $ do+ i <- nthArg 1+ pure $ VInteger $ fromMaybe 0 $ listToMaybe $ drop i xs+ _ -> noMethod "Version" fld VArray v -> do let toPos n = if n < 0
src/Typst/Module/Standard.hs view
@@ -16,7 +16,7 @@ import Data.Char (ord, chr) import Control.Applicative ((<|>)) import Control.Monad (mplus, unless)-import Control.Monad.Reader (lift)+import Control.Monad.Reader (lift, asks) import qualified Data.Aeson as Aeson import qualified Data.ByteString.Lazy as BL import qualified Data.Csv as Csv@@ -421,6 +421,11 @@ (val :: Int) <- nthArg 1 pure $ VString $ T.pack [chr val] ) ]+ ),+ ( "version",+ makeFunction $ do+ xs <- asks positional >>= mapM fromVal+ pure $ VVersion xs ), ( "symbol", makeFunction $ do
src/Typst/Parse.hs view
@@ -912,7 +912,7 @@ pStr :: P Literal pStr = lexeme $ do void $ char '"'- String . T.pack <$> manyTill (pStrEsc <|> noneOf "\"\r\n") (char '"')+ String . T.pack <$> manyTill (pStrEsc <|> satisfy (/= '"')) (char '"') pUnit :: P Unit pUnit =@@ -990,11 +990,7 @@ where pEmptyDict = Dict mempty <$ sym ":" pNonemptyDict = Dict <$> sepEndBy1 (pSpread <|> pPair) (sym ",")- pPair = Reg <$> ((,) <$> pKey <*> try (sym ":" *> pExpr))- pKey = pIdentifier <|> pStrKey- pStrKey = do- String t <- pStr- pure $ Identifier t+ pPair = Reg <$> ((,) <$> pExpr <*> try (sym ":" *> pExpr)) pSpread :: P (Spreadable a) pSpread = try $ string ".." *> (Spr <$> pExpr)@@ -1124,7 +1120,11 @@ -- set-expr ::= 'set' expr args pSetExpr :: P Expr pSetExpr = do+ oldAllowNewlines <- stAllowNewlines <$> getState+ -- see #23 -- 'set' doesn't go with 'if' unless it's on the same line+ updateState $ \st -> st {stAllowNewlines = 0} set <- pKeyword "set" *> (Set <$> pQualifiedIdentifier <*> pArgs)+ updateState $ \st -> st {stAllowNewlines = oldAllowNewlines} addCondition <- option id $ pKeyword "if" *> ((\c x -> If [(c, x)]) <$> pExpr) pure $ addCondition set @@ -1161,11 +1161,17 @@ pImportExpr = pKeyword "import" *> (Import <$> pExpr <*> pImportItems) where pImportItems =- option NoIdentifiers $- sym ":"+ (sym ":" *> ( (AllIdentifiers <$ sym "*")- <|> (SomeIdentifiers <$> sepEndBy pIdentifier (sym ","))+ <|> (SomeIdentifiers+ <$> sepEndBy pIdentifierAs (sym ",")) )+ ) <|> (NoIdentifiers <$> pAs)+ pIdentifierAs = do+ ident <- pIdentifier+ mbAs <- pAs+ pure (ident, mbAs)+ pAs = option Nothing $ Just <$> (pKeyword "as" *> pIdentifier) pBreakExpr :: P Expr pBreakExpr = Break <$ pKeyword "break"
src/Typst/Syntax.hs view
@@ -139,7 +139,7 @@ | FieldAccess Expr Expr | Group Expr | Array [Spreadable Expr]- | Dict [Spreadable (Identifier, Expr)]+ | Dict [Spreadable (Expr, Expr)] | Binding Bind | Let Bind Expr | LetFunc Identifier [Param] Expr@@ -159,6 +159,6 @@ data Imports = AllIdentifiers- | SomeIdentifiers [Identifier]- | NoIdentifiers+ | SomeIdentifiers [(Identifier, Maybe Identifier)] -- Maybe is the 'as'+ | NoIdentifiers (Maybe Identifier) -- Maybe is the 'as' deriving (Show, Ord, Eq, Data, Typeable)
src/Typst/Types.hs view
@@ -112,6 +112,7 @@ | VSelector !Selector | VModule Identifier (M.Map Identifier Val) | VStyles -- just a placeholder for now+ | VVersion [Integer] | VType !ValType deriving (Show, Eq, Typeable) @@ -170,6 +171,7 @@ | TLabel | TCounter | TLocation+ | TVersion | TType | TAny | ValType :|: ValType@@ -205,6 +207,7 @@ VModule {} -> TModule VSelector {} -> TSelector VStyles {} -> TStyles+ VVersion {} -> TVersion VType {} -> TType hasType :: ValType -> Val -> Bool@@ -376,6 +379,11 @@ comp (VString "integer") (VType TInteger) = Just EQ comp (VType ty) (VString s) = Just $ compare (prettyType ty) s comp (VString s) (VType ty) = Just $ compare s (prettyType ty)+ comp (VVersion as) (VVersion bs)+ | length as > length bs =+ Just $ compare as (bs ++ replicate (length as - length bs) 0)+ | otherwise =+ Just $ compare (as ++ replicate (length as - length bs) 0) bs comp _ _ = Nothing instance Ord Val where@@ -861,6 +869,7 @@ VSymbol (Symbol t _ _) -> text t VSelector _ -> mempty VStyles -> mempty+ VVersion xs -> text $ T.intercalate "." (map (T.pack . show) xs) VType ty -> text $ prettyType ty prettyType :: ValType -> Text
test/out/compiler/array-13.out view
@@ -49,7 +49,7 @@ (BasicBind (Just (Identifier "tasks"))) (Dict [ Reg- ( Identifier "a"+ ( Ident (Identifier "a") , Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2))@@ -57,7 +57,7 @@ ] ) , Reg- ( Identifier "b"+ ( Ident (Identifier "b") , Array [ Reg (Literal (Int 4)) , Reg (Literal (Int 5))
test/out/compiler/closure-05.out view
@@ -53,7 +53,8 @@ (Block (CodeBlock [ Import- (Ident (Identifier "b")) (SomeIdentifiers [ Identifier "b" ])+ (Ident (Identifier "b"))+ (SomeIdentifiers [ ( Identifier "b" , Nothing ) ]) , Ident (Identifier "b") ])) , FuncCall
test/out/compiler/dict-00.out view
@@ -52,8 +52,8 @@ (Let (BasicBind (Just (Identifier "dict"))) (Dict- [ Reg ( Identifier "normal" , Literal (Int 1) )- , Reg ( Identifier "spacy key" , Literal (Int 2) )+ [ Reg ( Ident (Identifier "normal") , Literal (Int 1) )+ , Reg ( Literal (String "spacy key") , Literal (Int 2) ) ])) , SoftBreak , Code
test/out/compiler/dict-01.out view
@@ -48,8 +48,8 @@ [ Let (BasicBind (Just (Identifier "dict"))) (Dict- [ Reg ( Identifier "a" , Literal (Int 1) )- , Reg ( Identifier "b b" , Literal (Int 1) )+ [ Reg ( Ident (Identifier "a") , Literal (Int 1) )+ , Reg ( Literal (String "b b") , Literal (Int 1) ) ]) , Assign (FuncCall@@ -64,21 +64,21 @@ (FieldAccess (Ident (Identifier "state")) (Ident (Identifier "dict"))) (Dict- [ Reg ( Identifier "ok" , Literal (Boolean True) )- , Reg ( Identifier "err" , Literal (Boolean False) )+ [ Reg ( Ident (Identifier "ok") , Literal (Boolean True) )+ , Reg ( Ident (Identifier "err") , Literal (Boolean False) ) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "dict")) , NormalArg (Dict- [ Reg ( Identifier "a" , Literal (Int 1) )- , Reg ( Identifier "b b" , Literal (Int 2) )+ [ Reg ( Ident (Identifier "a") , Literal (Int 1) )+ , Reg ( Literal (String "b b") , Literal (Int 2) ) , Reg- ( Identifier "state"+ ( Ident (Identifier "state") , Dict- [ Reg ( Identifier "ok" , Literal (Boolean True) )- , Reg ( Identifier "err" , Literal (Boolean False) )+ [ Reg ( Ident (Identifier "ok") , Literal (Boolean True) )+ , Reg ( Ident (Identifier "err") , Literal (Boolean False) ) ] ) ])
test/out/compiler/dict-03.out view
@@ -50,8 +50,8 @@ (FieldAccess (Ident (Identifier "at")) (Dict- [ Reg ( Identifier "a" , Literal (Int 1) )- , Reg ( Identifier "b" , Literal (Int 2) )+ [ Reg ( Ident (Identifier "a") , Literal (Int 1) )+ , Reg ( Ident (Identifier "b") , Literal (Int 2) ) ])) [ NormalArg (Literal (String "b")) , KeyValArg (Identifier "default") (Literal (Int 3))@@ -69,8 +69,8 @@ (FieldAccess (Ident (Identifier "at")) (Dict- [ Reg ( Identifier "a" , Literal (Int 1) )- , Reg ( Identifier "b" , Literal (Int 2) )+ [ Reg ( Ident (Identifier "a") , Literal (Int 1) )+ , Reg ( Ident (Identifier "b") , Literal (Int 2) ) ])) [ NormalArg (Literal (String "c")) , KeyValArg (Identifier "default") (Literal (Int 3))
test/out/compiler/dict-05.out view
@@ -46,9 +46,9 @@ (Let (BasicBind (Just (Identifier "dict"))) (Dict- [ Reg ( Identifier "a" , Literal (Int 3) )- , Reg ( Identifier "c" , Literal (Int 2) )- , Reg ( Identifier "b" , Literal (Int 1) )+ [ Reg ( Ident (Identifier "a") , Literal (Int 3) )+ , Reg ( Ident (Identifier "c") , Literal (Int 2) )+ , Reg ( Ident (Identifier "b") , Literal (Int 1) ) ])) , SoftBreak , Code@@ -154,8 +154,8 @@ [ NormalArg (Ident (Identifier "dict")) , NormalArg (Dict- [ Reg ( Identifier "a" , Literal (Int 3) )- , Reg ( Identifier "b" , Literal (Int 1) )+ [ Reg ( Ident (Identifier "a") , Literal (Int 3) )+ , Reg ( Ident (Identifier "b") , Literal (Int 1) ) ]) ]) , ParBreak
test/out/compiler/field-00.out view
@@ -46,8 +46,8 @@ (Let (BasicBind (Just (Identifier "dict"))) (Dict- [ Reg ( Identifier "nothing" , Literal (String "ness") )- , Reg ( Identifier "hello" , Literal (String "world") )+ [ Reg ( Ident (Identifier "nothing") , Literal (String "ness") )+ , Reg ( Ident (Identifier "hello") , Literal (String "world") ) ])) , SoftBreak , Code
test/out/compiler/for-00.out view
@@ -61,8 +61,8 @@ , Simple (Just (Identifier "v")) ]) (Dict- [ Reg ( Identifier "Name" , Literal (String "Typst") )- , Reg ( Identifier "Age" , Literal (Int 2) )+ [ Reg ( Ident (Identifier "Name") , Literal (String "Typst") )+ , Reg ( Ident (Identifier "Age") , Literal (Int 2) ) ]) (Block (Content
test/out/compiler/for-01.out view
@@ -101,8 +101,8 @@ (For (BasicBind (Just (Identifier "v"))) (Dict- [ Reg ( Identifier "a" , Literal (Int 4) )- , Reg ( Identifier "b" , Literal (Int 5) )+ [ Reg ( Ident (Identifier "a") , Literal (Int 4) )+ , Reg ( Ident (Identifier "b") , Literal (Int 5) ) ]) (Block (CodeBlock@@ -123,8 +123,8 @@ , Simple (Just (Identifier "v")) ]) (Dict- [ Reg ( Identifier "a" , Literal (Int 6) )- , Reg ( Identifier "b" , Literal (Int 7) )+ [ Reg ( Ident (Identifier "a") , Literal (Int 6) )+ , Reg ( Ident (Identifier "b") , Literal (Int 7) ) ]) (Block (CodeBlock
test/out/compiler/import-00.out view
@@ -56,7 +56,10 @@ ( line 9 , column 2 ) (Import (Literal (String "module.typ"))- (SomeIdentifiers [ Identifier "fn" , Identifier "value" ]))+ (SomeIdentifiers+ [ ( Identifier "fn" , Nothing )+ , ( Identifier "value" , Nothing )+ ])) , SoftBreak , Code "test/typ/compiler/import-00.typ"@@ -79,7 +82,8 @@ ( line 15 , column 2 ) (Import (Literal (String "module.typ"))- (SomeIdentifiers [ Identifier "a" , Identifier "c" ]))+ (SomeIdentifiers+ [ ( Identifier "a" , Nothing ) , ( Identifier "c" , Nothing ) ])) , Text "bye" , ParBreak ]
test/out/compiler/import-01.out view
@@ -45,7 +45,7 @@ ( line 3 , column 2 ) (Import (Literal (String "module.typ"))- (SomeIdentifiers [ Identifier "item" ]))+ (SomeIdentifiers [ ( Identifier "item" , Nothing ) ])) , SoftBreak , Code "test/typ/compiler/import-01.typ"
test/out/compiler/import-02.out view
@@ -47,7 +47,7 @@ ( line 5 , column 2 ) (Import (Ident (Identifier "enum"))- (SomeIdentifiers [ Identifier "item" ]))+ (SomeIdentifiers [ ( Identifier "item" , Nothing ) ])) , SoftBreak , Code "test/typ/compiler/import-02.typ"
test/out/compiler/import-03.out view
@@ -43,7 +43,7 @@ , Code "test/typ/compiler/import-03.typ" ( line 3 , column 2 )- (Import (Literal (String "module.typ")) NoIdentifiers)+ (Import (Literal (String "module.typ")) (NoIdentifiers Nothing)) , SoftBreak , Code "test/typ/compiler/import-03.typ"
test/out/compiler/import-05.out view
@@ -51,7 +51,8 @@ ( line 6 , column 2 ) (Import (Literal (String "module.typ"))- (SomeIdentifiers [ Identifier "a" , Identifier "c" ]))+ (SomeIdentifiers+ [ ( Identifier "a" , Nothing ) , ( Identifier "c" , Nothing ) ])) , ParBreak ] --- evaluated ---
test/out/compiler/import-06.out view
@@ -43,28 +43,29 @@ , Code "test/typ/compiler/import-06.typ" ( line 3 , column 2 )- (Import (Ident (Identifier "enum")) NoIdentifiers)+ (Import (Ident (Identifier "enum")) (NoIdentifiers Nothing)) , SoftBreak , Code "test/typ/compiler/import-06.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "d")))- (Dict [ Reg ( Identifier "e" , Ident (Identifier "enum") ) ]))+ (Dict+ [ Reg ( Ident (Identifier "e") , Ident (Identifier "enum") ) ])) , SoftBreak , Code "test/typ/compiler/import-06.typ" ( line 5 , column 2 ) (Import (FieldAccess (Ident (Identifier "e")) (Ident (Identifier "d")))- NoIdentifiers)+ (NoIdentifiers Nothing)) , SoftBreak , Code "test/typ/compiler/import-06.typ" ( line 6 , column 2 ) (Import (FieldAccess (Ident (Identifier "e")) (Ident (Identifier "d")))- (SomeIdentifiers [ Identifier "item" ]))+ (SomeIdentifiers [ ( Identifier "item" , Nothing ) ])) , ParBreak , Code "test/typ/compiler/import-06.typ"
test/out/compiler/let-16.out view
@@ -51,9 +51,9 @@ , WithKey (Identifier "x") (Just (Identifier "c")) ]) (Dict- [ Reg ( Identifier "a" , Literal (Int 1) )- , Reg ( Identifier "b" , Literal (Int 2) )- , Reg ( Identifier "x" , Literal (Int 3) )+ [ Reg ( Ident (Identifier "a") , Literal (Int 1) )+ , Reg ( Ident (Identifier "b") , Literal (Int 2) )+ , Reg ( Ident (Identifier "x") , Literal (Int 3) ) ])) , SoftBreak , Code
test/out/compiler/let-17.out view
@@ -50,9 +50,9 @@ , Sink (Just (Identifier "b")) ]) (Dict- [ Reg ( Identifier "a" , Literal (Int 1) )- , Reg ( Identifier "b" , Literal (Int 2) )- , Reg ( Identifier "c" , Literal (Int 3) )+ [ Reg ( Ident (Identifier "a") , Literal (Int 1) )+ , Reg ( Ident (Identifier "b") , Literal (Int 2) )+ , Reg ( Ident (Identifier "c") , Literal (Int 3) ) ])) , SoftBreak , Code@@ -63,8 +63,8 @@ [ NormalArg (Ident (Identifier "b")) , NormalArg (Dict- [ Reg ( Identifier "b" , Literal (Int 2) )- , Reg ( Identifier "c" , Literal (Int 3) )+ [ Reg ( Ident (Identifier "b") , Literal (Int 2) )+ , Reg ( Ident (Identifier "c") , Literal (Int 3) ) ]) ]) , ParBreak
test/out/compiler/let-18.out view
@@ -51,9 +51,9 @@ , WithKey (Identifier "c") Nothing ]) (Dict- [ Reg ( Identifier "a" , Literal (Int 1) )- , Reg ( Identifier "b" , Literal (Int 2) )- , Reg ( Identifier "c" , Literal (Int 3) )+ [ Reg ( Ident (Identifier "a") , Literal (Int 1) )+ , Reg ( Ident (Identifier "b") , Literal (Int 2) )+ , Reg ( Ident (Identifier "c") , Literal (Int 3) ) ])) , SoftBreak , Code@@ -62,7 +62,8 @@ (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "b"))- , NormalArg (Dict [ Reg ( Identifier "b" , Literal (Int 2) ) ])+ , NormalArg+ (Dict [ Reg ( Ident (Identifier "b") , Literal (Int 2) ) ]) ]) , ParBreak ]
test/out/compiler/let-19.out view
@@ -49,7 +49,7 @@ [ WithKey (Identifier "a") Nothing , Sink (Just (Identifier "b")) ])- (Dict [ Reg ( Identifier "a" , Literal (Int 1) ) ]))+ (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) ])) , SoftBreak , Code "test/typ/compiler/let-19.typ"
test/out/compiler/let-21.out view
@@ -48,8 +48,8 @@ (DestructuringBind [ Simple (Just (Identifier "a")) , Sink Nothing ]) (Dict- [ Reg ( Identifier "a" , Literal (Int 1) )- , Reg ( Identifier "b" , Literal (Int 2) )+ [ Reg ( Ident (Identifier "a") , Literal (Int 1) )+ , Reg ( Ident (Identifier "b") , Literal (Int 2) ) ])) , SoftBreak , Code
test/out/compiler/ops-01.out view
@@ -179,16 +179,16 @@ (Ident (Identifier "test")) [ NormalArg (Plus- (Dict [ Reg ( Identifier "a" , Literal (Int 1) ) ])+ (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) ]) (Dict- [ Reg ( Identifier "b" , Literal (Int 2) )- , Reg ( Identifier "c" , Literal (Int 3) )+ [ Reg ( Ident (Identifier "b") , Literal (Int 2) )+ , Reg ( Ident (Identifier "c") , Literal (Int 3) ) ])) , NormalArg (Dict- [ Reg ( Identifier "a" , Literal (Int 1) )- , Reg ( Identifier "b" , Literal (Int 2) )- , Reg ( Identifier "c" , Literal (Int 3) )+ [ Reg ( Ident (Identifier "a") , Literal (Int 1) )+ , Reg ( Ident (Identifier "b") , Literal (Int 2) )+ , Reg ( Ident (Identifier "c") , Literal (Int 3) ) ]) ]) , ParBreak
test/out/compiler/ops-08.out view
@@ -142,7 +142,8 @@ (Ident (Identifier "test")) [ NormalArg (Equals- (Dict []) (Dict [ Reg ( Identifier "a" , Literal (Int 1) ) ]))+ (Dict [])+ (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) ])) , NormalArg (Literal (Boolean False)) ]) , SoftBreak@@ -155,12 +156,14 @@ (Equals (Dict [ Reg- ( Identifier "a" , Minus (Literal (Int 2)) (Literal (Float 1.0)) )- , Reg ( Identifier "b" , Literal (Int 2) )+ ( Ident (Identifier "a")+ , Minus (Literal (Int 2)) (Literal (Float 1.0))+ )+ , Reg ( Ident (Identifier "b") , Literal (Int 2) ) ]) (Dict- [ Reg ( Identifier "b" , Literal (Int 2) )- , Reg ( Identifier "a" , Literal (Int 1) )+ [ Reg ( Ident (Identifier "b") , Literal (Int 2) )+ , Reg ( Ident (Identifier "a") , Literal (Int 1) ) ])) , NormalArg (Literal (Boolean True)) ])
test/out/compiler/ops-13.out view
@@ -131,7 +131,8 @@ [ NormalArg (InCollection (Literal (String "key"))- (Dict [ Reg ( Identifier "key" , Literal (String "value") ) ]))+ (Dict+ [ Reg ( Ident (Identifier "key") , Literal (String "value") ) ])) , NormalArg (Literal (Boolean True)) ]) , SoftBreak@@ -143,7 +144,8 @@ [ NormalArg (InCollection (Literal (String "value"))- (Dict [ Reg ( Identifier "key" , Literal (String "value") ) ]))+ (Dict+ [ Reg ( Ident (Identifier "key") , Literal (String "value") ) ])) , NormalArg (Literal (Boolean False)) ]) , SoftBreak
test/out/compiler/show-selector-00.out view
@@ -55,12 +55,13 @@ [ KeyValArg (Identifier "radius") (Literal (Numeric 2.0 Pt)) , KeyValArg (Identifier "outset")- (Dict [ Reg ( Identifier "y" , Literal (Numeric 2.5 Pt) ) ])+ (Dict+ [ Reg ( Ident (Identifier "y") , Literal (Numeric 2.5 Pt) ) ]) , KeyValArg (Identifier "inset") (Dict- [ Reg ( Identifier "x" , Literal (Numeric 3.0 Pt) )- , Reg ( Identifier "y" , Literal (Numeric 0.0 Pt) )+ [ Reg ( Ident (Identifier "x") , Literal (Numeric 3.0 Pt) )+ , Reg ( Ident (Identifier "y") , Literal (Numeric 0.0 Pt) ) ]) , KeyValArg (Identifier "fill")@@ -92,7 +93,7 @@ (Identifier "stroke") (Dict [ Reg- ( Identifier "left"+ ( Ident (Identifier "left") , Plus (Literal (Numeric 1.5 Pt)) (FuncCall@@ -108,7 +109,8 @@ (Ident (Identifier "page")) [ KeyValArg (Identifier "margin")- (Dict [ Reg ( Identifier "top" , Literal (Numeric 12.0 Pt) ) ])+ (Dict+ [ Reg ( Ident (Identifier "top") , Literal (Numeric 12.0 Pt) ) ]) ]) , SoftBreak , Code
test/out/compiler/spread-03.out view
@@ -97,8 +97,8 @@ [ Let (BasicBind (Just (Identifier "more"))) (Dict- [ Reg ( Identifier "c" , Literal (Int 3) )- , Reg ( Identifier "d" , Literal (Int 4) )+ [ Reg ( Ident (Identifier "c") , Literal (Int 3) )+ , Reg ( Ident (Identifier "d") , Literal (Int 4) ) ]) , LetFunc (Identifier "tostr")
test/out/compiler/string-13.out view
@@ -70,10 +70,10 @@ ]) , NormalArg (Dict- [ Reg ( Identifier "start" , Literal (Int 4) )- , Reg ( Identifier "end" , Literal (Int 8) )- , Reg ( Identifier "text" , Literal (String "time") )- , Reg ( Identifier "captures" , Array [] )+ [ Reg ( Ident (Identifier "start") , Literal (Int 4) )+ , Reg ( Ident (Identifier "end") , Literal (Int 8) )+ , Reg ( Ident (Identifier "text") , Literal (String "time") )+ , Reg ( Ident (Identifier "captures") , Array [] ) ]) ]) , ParBreak@@ -105,17 +105,17 @@ (Array [ Reg (Dict- [ Reg ( Identifier "start" , Literal (Int 0) )- , Reg ( Identifier "end" , Literal (Int 3) )- , Reg ( Identifier "text" , Literal (String "Day") )- , Reg ( Identifier "captures" , Array [] )+ [ Reg ( Ident (Identifier "start") , Literal (Int 0) )+ , Reg ( Ident (Identifier "end") , Literal (Int 3) )+ , Reg ( Ident (Identifier "text") , Literal (String "Day") )+ , Reg ( Ident (Identifier "captures") , Array [] ) ]) , Reg (Dict- [ Reg ( Identifier "start" , Literal (Int 7) )- , Reg ( Identifier "end" , Literal (Int 10) )- , Reg ( Identifier "text" , Literal (String "Day") )- , Reg ( Identifier "captures" , Array [] )+ [ Reg ( Ident (Identifier "start") , Literal (Int 7) )+ , Reg ( Ident (Identifier "end") , Literal (Int 10) )+ , Reg ( Ident (Identifier "text") , Literal (String "Day") )+ , Reg ( Ident (Identifier "captures") , Array [] ) ]) ]) ])
test/out/compute/data-08.out view
@@ -132,8 +132,8 @@ (Ident (Identifier "inline_table")) (Ident (Identifier "data"))) , NormalArg (Dict- [ Reg ( Identifier "first" , Literal (String "amazing") )- , Reg ( Identifier "second" , Literal (String "greater") )+ [ Reg ( Literal (String "first") , Literal (String "amazing") )+ , Reg ( Literal (String "second") , Literal (String "greater") ) ]) ]) , SoftBreak
test/out/compute/data-10.out view
@@ -117,8 +117,8 @@ (Ident (Identifier "mapping")) (Ident (Identifier "data"))) , NormalArg (Dict- [ Reg ( Identifier "1" , Literal (String "one") )- , Reg ( Identifier "2" , Literal (String "two") )+ [ Reg ( Literal (String "1") , Literal (String "one") )+ , Reg ( Literal (String "2") , Literal (String "two") ) ]) ]) , SoftBreak
test/out/compute/data-12.out view
@@ -59,42 +59,47 @@ (Array [ Reg (Dict- [ Reg ( Identifier "tag" , Literal (String "data") )- , Reg ( Identifier "attrs" , Dict [] )+ [ Reg ( Ident (Identifier "tag") , Literal (String "data") )+ , Reg ( Ident (Identifier "attrs") , Dict [] ) , Reg- ( Identifier "children"+ ( Ident (Identifier "children") , Array [ Reg (Literal (String "\n ")) , Reg (Dict- [ Reg ( Identifier "tag" , Literal (String "hello") )+ [ Reg ( Ident (Identifier "tag") , Literal (String "hello") ) , Reg- ( Identifier "attrs"- , Dict [ Reg ( Identifier "name" , Literal (String "hi") ) ]+ ( Ident (Identifier "attrs")+ , Dict+ [ Reg+ ( Ident (Identifier "name")+ , Literal (String "hi")+ )+ ] ) , Reg- ( Identifier "children"+ ( Ident (Identifier "children") , Array [ Reg (Literal (String "1")) ] ) ]) , Reg (Literal (String "\n ")) , Reg (Dict- [ Reg ( Identifier "tag" , Literal (String "data") )- , Reg ( Identifier "attrs" , Dict [] )+ [ Reg ( Ident (Identifier "tag") , Literal (String "data") )+ , Reg ( Ident (Identifier "attrs") , Dict [] ) , Reg- ( Identifier "children"+ ( Ident (Identifier "children") , Array [ Reg (Literal (String "\n ")) , Reg (Dict [ Reg- ( Identifier "tag"+ ( Ident (Identifier "tag") , Literal (String "hello") )- , Reg ( Identifier "attrs" , Dict [] )+ , Reg ( Ident (Identifier "attrs") , Dict [] ) , Reg- ( Identifier "children"+ ( Ident (Identifier "children") , Array [ Reg (Literal (String "World")) ] ) ])@@ -102,12 +107,12 @@ , Reg (Dict [ Reg- ( Identifier "tag"+ ( Ident (Identifier "tag") , Literal (String "hello") )- , Reg ( Identifier "attrs" , Dict [] )+ , Reg ( Ident (Identifier "attrs") , Dict [] ) , Reg- ( Identifier "children"+ ( Ident (Identifier "children") , Array [ Reg (Literal (String "World")) ] ) ])
test/out/layout/page-03.out view
@@ -73,8 +73,8 @@ , KeyValArg (Identifier "margin") (Dict- [ Reg ( Identifier "top" , Literal (Numeric 10.0 Pt) )- , Reg ( Identifier "rest" , Literal Auto )+ [ Reg ( Ident (Identifier "top") , Literal (Numeric 10.0 Pt) )+ , Reg ( Ident (Identifier "rest") , Literal Auto ) ]) , BlockArg [ Text "Hi" ] ])
test/out/layout/page-margin-01.out view
@@ -59,7 +59,8 @@ (Ident (Identifier "page")) [ KeyValArg (Identifier "margin")- (Dict [ Reg ( Identifier "left" , Literal (Numeric 0.0 Pt) ) ])+ (Dict+ [ Reg ( Ident (Identifier "left") , Literal (Numeric 0.0 Pt) ) ]) ]) , Space , Code@@ -84,7 +85,8 @@ (Ident (Identifier "page")) [ KeyValArg (Identifier "margin")- (Dict [ Reg ( Identifier "right" , Literal (Numeric 0.0 Pt) ) ])+ (Dict+ [ Reg ( Ident (Identifier "right") , Literal (Numeric 0.0 Pt) ) ]) ]) , Space , Code@@ -109,7 +111,8 @@ (Ident (Identifier "page")) [ KeyValArg (Identifier "margin")- (Dict [ Reg ( Identifier "top" , Literal (Numeric 0.0 Pt) ) ])+ (Dict+ [ Reg ( Ident (Identifier "top") , Literal (Numeric 0.0 Pt) ) ]) ]) , Space , Code@@ -132,7 +135,8 @@ (Ident (Identifier "page")) [ KeyValArg (Identifier "margin")- (Dict [ Reg ( Identifier "bottom" , Literal (Numeric 0.0 Pt) ) ])+ (Dict+ [ Reg ( Ident (Identifier "bottom") , Literal (Numeric 0.0 Pt) ) ]) ]) , Space , Code@@ -159,8 +163,8 @@ [ KeyValArg (Identifier "margin") (Dict- [ Reg ( Identifier "rest" , Literal (Numeric 0.0 Pt) )- , Reg ( Identifier "left" , Literal (Numeric 20.0 Pt) )+ [ Reg ( Ident (Identifier "rest") , Literal (Numeric 0.0 Pt) )+ , Reg ( Ident (Identifier "left") , Literal (Numeric 20.0 Pt) ) ]) ]) , Space
test/out/layout/page-marginals-00.out view
@@ -48,8 +48,8 @@ , KeyValArg (Identifier "margin") (Dict- [ Reg ( Identifier "x" , Literal (Numeric 15.0 Pt) )- , Reg ( Identifier "y" , Literal (Numeric 30.0 Pt) )+ [ Reg ( Ident (Identifier "x") , Literal (Numeric 15.0 Pt) )+ , Reg ( Ident (Identifier "y") , Literal (Numeric 30.0 Pt) ) ]) , KeyValArg (Identifier "header")@@ -344,8 +344,8 @@ , KeyValArg (Identifier "margin") (Dict- [ Reg ( Identifier "top" , Literal (Numeric 15.0 Pt) )- , Reg ( Identifier "bottom" , Literal (Numeric 25.0 Pt) )+ [ Reg ( Ident (Identifier "top") , Literal (Numeric 15.0 Pt) )+ , Reg ( Ident (Identifier "bottom") , Literal (Numeric 25.0 Pt) ) ]) ]) , SoftBreak
test/out/layout/par-justify-cjk-03.out view
@@ -52,7 +52,8 @@ (Plus (Literal (Numeric 170.0 Pt)) (Literal (Numeric 10.0 Pt))) , KeyValArg (Identifier "margin")- (Dict [ Reg ( Identifier "x" , Literal (Numeric 5.0 Pt) ) ])+ (Dict+ [ Reg ( Ident (Identifier "x") , Literal (Numeric 5.0 Pt) ) ]) ]) , SoftBreak , Code
test/out/meta/counter-page-00.out view
@@ -50,8 +50,8 @@ , KeyValArg (Identifier "margin") (Dict- [ Reg ( Identifier "bottom" , Literal (Numeric 20.0 Pt) )- , Reg ( Identifier "rest" , Literal (Numeric 10.0 Pt) )+ [ Reg ( Ident (Identifier "bottom") , Literal (Numeric 20.0 Pt) )+ , Reg ( Ident (Identifier "rest") , Literal (Numeric 10.0 Pt) ) ]) ]) , SoftBreak
test/out/meta/link-08.out view
@@ -47,9 +47,9 @@ (Ident (Identifier "link")) [ NormalArg (Dict- [ Reg ( Identifier "page" , Literal (Int 1) )- , Reg ( Identifier "x" , Literal (Numeric 10.0 Pt) )- , Reg ( Identifier "y" , Literal (Numeric 20.0 Pt) )+ [ Reg ( Ident (Identifier "page") , Literal (Int 1) )+ , Reg ( Ident (Identifier "x") , Literal (Numeric 10.0 Pt) )+ , Reg ( Ident (Identifier "y") , Literal (Numeric 20.0 Pt) ) ]) , BlockArg [ Text "Back"
test/out/meta/query-before-after-00.out view
@@ -49,8 +49,8 @@ , KeyValArg (Identifier "margin") (Dict- [ Reg ( Identifier "bottom" , Literal (Numeric 1.0 Cm) )- , Reg ( Identifier "rest" , Literal (Numeric 0.5 Cm) )+ [ Reg ( Ident (Identifier "bottom") , Literal (Numeric 1.0 Cm) )+ , Reg ( Ident (Identifier "rest") , Literal (Numeric 0.5 Cm) ) ]) ]) , ParBreak
test/out/meta/query-before-after-01.out view
@@ -49,8 +49,8 @@ , KeyValArg (Identifier "margin") (Dict- [ Reg ( Identifier "bottom" , Literal (Numeric 1.0 Cm) )- , Reg ( Identifier "rest" , Literal (Numeric 0.5 Cm) )+ [ Reg ( Ident (Identifier "bottom") , Literal (Numeric 1.0 Cm) )+ , Reg ( Ident (Identifier "rest") , Literal (Numeric 0.5 Cm) ) ]) ]) , ParBreak
test/out/meta/query-figure-00.out view
@@ -49,8 +49,8 @@ , KeyValArg (Identifier "margin") (Dict- [ Reg ( Identifier "bottom" , Literal (Numeric 1.0 Cm) )- , Reg ( Identifier "rest" , Literal (Numeric 0.5 Cm) )+ [ Reg ( Ident (Identifier "bottom") , Literal (Numeric 1.0 Cm) )+ , Reg ( Ident (Identifier "rest") , Literal (Numeric 0.5 Cm) ) ]) ]) , ParBreak
test/out/meta/query-header-00.out view
@@ -48,8 +48,8 @@ , KeyValArg (Identifier "margin") (Dict- [ Reg ( Identifier "y" , Literal (Numeric 1.0 Cm) )- , Reg ( Identifier "x" , Literal (Numeric 0.5 Cm) )+ [ Reg ( Ident (Identifier "y") , Literal (Numeric 1.0 Cm) )+ , Reg ( Ident (Identifier "x") , Literal (Numeric 0.5 Cm) ) ]) , KeyValArg (Identifier "header")
+ test/out/regression/issue19.out view
@@ -0,0 +1,89 @@+--- parse tree ---+[ Code+ "test/typ/regression/issue19.typ"+ ( line 1 , column 2 )+ (Let+ (BasicBind (Just (Identifier "test")))+ (FuncExpr+ [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ]+ (Block+ (CodeBlock+ [ If+ [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y"))+ , Block (Content [ Text "\9989" ])+ )+ , ( Literal (Boolean True)+ , Block+ (Content+ [ Text "\10060"+ , Text "("+ , Code+ "test/typ/regression/issue19.typ"+ ( line 1 , column 47 )+ (FuncCall+ (Ident (Identifier "repr"))+ [ NormalArg (Ident (Identifier "x")) ])+ , Space+ , Text "/"+ , Text "="+ , Space+ , Code+ "test/typ/regression/issue19.typ"+ ( line 1 , column 59 )+ (FuncCall+ (Ident (Identifier "repr"))+ [ NormalArg (Ident (Identifier "y")) ])+ , Text ")"+ ])+ )+ ]+ ]))))+, SoftBreak+, Code+ "test/typ/regression/issue19.typ"+ ( line 2 , column 2 )+ (Let+ (BasicBind (Just (Identifier "nums")))+ (Array+ [ Reg (Literal (Int 1))+ , Reg (Literal None)+ , Reg (Literal (Int 2))+ ]))+, SoftBreak+, Code+ "test/typ/regression/issue19.typ"+ ( line 3 , column 2 )+ (FuncCall+ (FieldAccess+ (Ident (Identifier "map")) (Ident (Identifier "nums")))+ [ NormalArg+ (FuncExpr+ [ NormalParam (Identifier "num") ]+ (Block+ (CodeBlock+ [ If+ [ ( Equals (Ident (Identifier "num")) (Literal None)+ , Block (CodeBlock [ Return (Just (Literal (Int 1))) ])+ )+ ]+ , Return+ (Just+ (Dict+ [ Reg+ ( FuncCall+ (Ident (Identifier "str"))+ [ NormalArg (Ident (Identifier "num")) ]+ , Literal (Int 1)+ )+ ]))+ ])))+ ])+, ParBreak+]+--- evaluated ---+document(body: { text(body: [+]), + text(body: [+]), + text(body: [((1: 1), 1, (2: 1))]), + parbreak() })
+ test/out/regression/issue20.out view
@@ -0,0 +1,63 @@+--- parse tree ---+[ Code+ "test/typ/regression/issue20.typ"+ ( line 1 , column 2 )+ (Let+ (BasicBind (Just (Identifier "test")))+ (FuncExpr+ [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ]+ (Block+ (CodeBlock+ [ If+ [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y"))+ , Block (Content [ Text "\9989" ])+ )+ , ( Literal (Boolean True)+ , Block+ (Content+ [ Text "\10060"+ , Text "("+ , Code+ "test/typ/regression/issue20.typ"+ ( line 1 , column 47 )+ (FuncCall+ (Ident (Identifier "repr"))+ [ NormalArg (Ident (Identifier "x")) ])+ , Space+ , Text "/"+ , Text "="+ , Space+ , Code+ "test/typ/regression/issue20.typ"+ ( line 1 , column 59 )+ (FuncCall+ (Ident (Identifier "repr"))+ [ NormalArg (Ident (Identifier "y")) ])+ , Text ")"+ ])+ )+ ]+ ]))))+, SoftBreak+, Code+ "test/typ/regression/issue20.typ"+ ( line 2 , column 2 )+ (Let+ (BasicBind (Just (Identifier "a")))+ (Literal (String "\nThis is a\nmultiline string\n")))+, SoftBreak+, Code+ "test/typ/regression/issue20.typ"+ ( line 6 , column 2 )+ (FuncCall+ (FieldAccess (Ident (Identifier "len")) (Ident (Identifier "a")))+ [])+, ParBreak+]+--- evaluated ---+document(body: { text(body: [+]), + text(body: [+]), + text(body: [28]), + parbreak() })
+ test/out/regression/issue21.out view
@@ -0,0 +1,68 @@+--- parse tree ---+[ Code+ "test/typ/regression/issue21.typ"+ ( line 1 , column 2 )+ (Let+ (BasicBind (Just (Identifier "test")))+ (FuncExpr+ [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ]+ (Block+ (CodeBlock+ [ If+ [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y"))+ , Block (Content [ Text "\9989" ])+ )+ , ( Literal (Boolean True)+ , Block+ (Content+ [ Text "\10060"+ , Text "("+ , Code+ "test/typ/regression/issue21.typ"+ ( line 1 , column 47 )+ (FuncCall+ (Ident (Identifier "repr"))+ [ NormalArg (Ident (Identifier "x")) ])+ , Space+ , Text "/"+ , Text "="+ , Space+ , Code+ "test/typ/regression/issue21.typ"+ ( line 1 , column 59 )+ (FuncCall+ (Ident (Identifier "repr"))+ [ NormalArg (Ident (Identifier "y")) ])+ , Text ")"+ ])+ )+ ]+ ]))))+, SoftBreak+, Code+ "test/typ/regression/issue21.typ"+ ( line 2 , column 2 )+ (FuncCall+ (Ident (Identifier "version"))+ [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) ])+, SoftBreak+, Code+ "test/typ/regression/issue21.typ"+ ( line 3 , column 2 )+ (FuncCall+ (FieldAccess+ (Ident (Identifier "at"))+ (FuncCall+ (Ident (Identifier "version"))+ [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) ]))+ [ NormalArg (Literal (Int 3)) ])+, ParBreak+]+--- evaluated ---+document(body: { text(body: [+]), + text(body: [1.2]), + text(body: [+]), + text(body: [0]), + parbreak() })
+ test/out/regression/issue21b.out view
@@ -0,0 +1,83 @@+--- parse tree ---+[ Code+ "test/typ/regression/issue21b.typ"+ ( line 1 , column 2 )+ (Let+ (BasicBind (Just (Identifier "test")))+ (FuncExpr+ [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ]+ (Block+ (CodeBlock+ [ If+ [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y"))+ , Block (Content [ Text "\9989" ])+ )+ , ( Literal (Boolean True)+ , Block+ (Content+ [ Text "\10060"+ , Text "("+ , Code+ "test/typ/regression/issue21b.typ"+ ( line 1 , column 47 )+ (FuncCall+ (Ident (Identifier "repr"))+ [ NormalArg (Ident (Identifier "x")) ])+ , Space+ , Text "/"+ , Text "="+ , Space+ , Code+ "test/typ/regression/issue21b.typ"+ ( line 1 , column 59 )+ (FuncCall+ (Ident (Identifier "repr"))+ [ NormalArg (Ident (Identifier "y")) ])+ , Text ")"+ ])+ )+ ]+ ]))))+, SoftBreak+, Code+ "test/typ/regression/issue21b.typ"+ ( line 2 , column 2 )+ (Import+ (Literal (String "issue19.typ"))+ (NoIdentifiers (Just (Identifier "zeke"))))+, SoftBreak+, Code+ "test/typ/regression/issue21b.typ"+ ( line 3 , column 2 )+ (FieldAccess+ (Ident (Identifier "nums")) (Ident (Identifier "zeke")))+, SoftBreak+, Code+ "test/typ/regression/issue21b.typ"+ ( line 4 , column 2 )+ (Import+ (Literal (String "issue20.typ"))+ (SomeIdentifiers+ [ ( Identifier "a" , Just (Identifier "multiline") ) ]))+, SoftBreak+, Code+ "test/typ/regression/issue21b.typ"+ ( line 5 , column 2 )+ (Ident (Identifier "multiline"))+, ParBreak+]+--- evaluated ---+document(body: { text(body: [+]), + text(body: [+]), + text(body: [(1, none, 2)]), + text(body: [+]), + text(body: [+]), + text(body: [+This is a+multiline string+]), + parbreak() })
+ test/out/regression/issue23.out view
@@ -0,0 +1,77 @@+--- parse tree ---+[ Code+ "test/typ/regression/issue23.typ"+ ( line 1 , column 2 )+ (Let+ (BasicBind (Just (Identifier "test")))+ (FuncExpr+ [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ]+ (Block+ (CodeBlock+ [ If+ [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y"))+ , Block (Content [ Text "\9989" ])+ )+ , ( Literal (Boolean True)+ , Block+ (Content+ [ Text "\10060"+ , Text "("+ , Code+ "test/typ/regression/issue23.typ"+ ( line 1 , column 47 )+ (FuncCall+ (Ident (Identifier "repr"))+ [ NormalArg (Ident (Identifier "x")) ])+ , Space+ , Text "/"+ , Text "="+ , Space+ , Code+ "test/typ/regression/issue23.typ"+ ( line 1 , column 59 )+ (FuncCall+ (Ident (Identifier "repr"))+ [ NormalArg (Ident (Identifier "y")) ])+ , Text ")"+ ])+ )+ ]+ ]))))+, SoftBreak+, Code+ "test/typ/regression/issue23.typ"+ ( line 2 , column 2 )+ (LetFunc+ (Identifier "fn")+ []+ (Block+ (CodeBlock+ [ Set+ (Ident (Identifier "text"))+ [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) ]+ , If+ [ ( Literal (Boolean True)+ , Block (Content [ SoftBreak , Text "test" , ParBreak ])+ )+ , ( Literal (Boolean True)+ , Block (Content [ SoftBreak , Text "test2" , ParBreak ])+ )+ ]+ ])))+, ParBreak+, Code+ "test/typ/regression/issue23.typ"+ ( line 11 , column 2 )+ (FuncCall (Ident (Identifier "fn")) [])+, ParBreak+]+--- evaluated ---+document(body: { text(body: [+]), + parbreak(), + text(body: [+test], + fill: rgb(100%,25%,21%,100%)), + parbreak(), + parbreak() })
test/out/regression/issue3.out view
@@ -46,10 +46,10 @@ (BasicBind (Just (Identifier "alpha"))) (Dict [ Reg- ( Identifier "named"+ ( Ident (Identifier "named") , Dict- [ Reg ( Identifier "a" , Literal (Int 1) )- , Reg ( Identifier "b" , Literal (Int 2) )+ [ Reg ( Ident (Identifier "a") , Literal (Int 1) )+ , Reg ( Ident (Identifier "b") , Literal (Int 2) ) ] ) ]))@@ -61,7 +61,7 @@ [ Spr (FieldAccess (Ident (Identifier "named")) (Ident (Identifier "alpha")))- , Reg ( Identifier "c" , Literal (Int 3) )+ , Reg ( Ident (Identifier "c") , Literal (Int 3) ) ]) , ParBreak ]
test/out/text/features-07.out view
@@ -63,7 +63,7 @@ (Ident (Identifier "text")) [ KeyValArg (Identifier "features")- (Dict [ Reg ( Identifier "liga" , Literal (Int 0) ) ])+ (Dict [ Reg ( Ident (Identifier "liga") , Literal (Int 0) ) ]) , BlockArg [ Text "No" , Space , Text "fi" ] ]) , ParBreak
test/out/text/raw-code-04.out view
@@ -61,8 +61,8 @@ [ KeyValArg (Identifier "inset") (Dict- [ Reg ( Identifier "x" , Literal (Numeric 4.0 Pt) )- , Reg ( Identifier "y" , Literal (Numeric 5.0 Pt) )+ [ Reg ( Ident (Identifier "x") , Literal (Numeric 4.0 Pt) )+ , Reg ( Ident (Identifier "y") , Literal (Numeric 5.0 Pt) ) ]) , KeyValArg (Identifier "radius") (Literal (Numeric 4.0 Pt)) , KeyValArg
test/out/visualize/shape-ellipse-01.out view
@@ -173,8 +173,8 @@ , KeyValArg (Identifier "outset") (Dict- [ Reg ( Identifier "top" , Literal (Numeric 3.0 Pt) )- , Reg ( Identifier "rest" , Literal (Numeric 5.5 Pt) )+ [ Reg ( Ident (Identifier "top") , Literal (Numeric 3.0 Pt) )+ , Reg ( Ident (Identifier "rest") , Literal (Numeric 5.5 Pt) ) ]) ]) ])
test/out/visualize/shape-fill-stroke-02.out view
@@ -62,10 +62,10 @@ [ KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "left" , Ident (Identifier "red") )- , Reg ( Identifier "top" , Ident (Identifier "yellow") )- , Reg ( Identifier "right" , Ident (Identifier "green") )- , Reg ( Identifier "bottom" , Ident (Identifier "blue") )+ [ Reg ( Ident (Identifier "left") , Ident (Identifier "red") )+ , Reg ( Ident (Identifier "top") , Ident (Identifier "yellow") )+ , Reg ( Ident (Identifier "right") , Ident (Identifier "green") )+ , Reg ( Ident (Identifier "bottom") , Ident (Identifier "blue") ) ]) , KeyValArg (Identifier "radius") (Literal (Numeric 100.0 Percent)) , NormalArg
test/out/visualize/shape-rect-01.out view
@@ -191,8 +191,8 @@ , KeyValArg (Identifier "radius") (Dict- [ Reg ( Identifier "left" , Literal (Numeric 10.0 Pt) )- , Reg ( Identifier "right" , Literal (Numeric 5.0 Pt) )+ [ Reg ( Ident (Identifier "left") , Literal (Numeric 10.0 Pt) )+ , Reg ( Ident (Identifier "right") , Literal (Numeric 5.0 Pt) ) ]) ]) , NormalArg@@ -202,10 +202,12 @@ , KeyValArg (Identifier "radius") (Dict- [ Reg ( Identifier "top-left" , Literal (Numeric 2.0 Pt) )- , Reg ( Identifier "top-right" , Literal (Numeric 5.0 Pt) )- , Reg ( Identifier "bottom-right" , Literal (Numeric 8.0 Pt) )- , Reg ( Identifier "bottom-left" , Literal (Numeric 11.0 Pt) )+ [ Reg ( Ident (Identifier "top-left") , Literal (Numeric 2.0 Pt) )+ , Reg ( Ident (Identifier "top-right") , Literal (Numeric 5.0 Pt) )+ , Reg+ ( Ident (Identifier "bottom-right") , Literal (Numeric 8.0 Pt) )+ , Reg+ ( Ident (Identifier "bottom-left") , Literal (Numeric 11.0 Pt) ) ]) ]) ])@@ -218,7 +220,8 @@ (Ident (Identifier "rect")) [ KeyValArg (Identifier "stroke")- (Dict [ Reg ( Identifier "right" , Ident (Identifier "red") ) ])+ (Dict+ [ Reg ( Ident (Identifier "right") , Ident (Identifier "red") ) ]) ]) , SoftBreak , Code@@ -231,8 +234,8 @@ , KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "x" , Literal (Numeric 5.0 Pt) )- , Reg ( Identifier "y" , Literal (Numeric 1.0 Pt) )+ [ Reg ( Ident (Identifier "x") , Literal (Numeric 5.0 Pt) )+ , Reg ( Ident (Identifier "y") , Literal (Numeric 1.0 Pt) ) ]) ]) , ParBreak
test/out/visualize/stroke-00.out view
@@ -96,9 +96,9 @@ , KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "paint" , Ident (Identifier "red") )- , Reg ( Identifier "thickness" , Literal (Numeric 1.0 Pt) )- , Reg ( Identifier "dash" , Literal (String "dashed") )+ [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") )+ , Reg ( Ident (Identifier "thickness") , Literal (Numeric 1.0 Pt) )+ , Reg ( Ident (Identifier "dash") , Literal (String "dashed") ) ]) ]) , SoftBreak@@ -117,9 +117,9 @@ , KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "paint" , Ident (Identifier "red") )- , Reg ( Identifier "thickness" , Literal (Numeric 4.0 Pt) )- , Reg ( Identifier "cap" , Literal (String "round") )+ [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") )+ , Reg ( Ident (Identifier "thickness") , Literal (Numeric 4.0 Pt) )+ , Reg ( Ident (Identifier "cap") , Literal (String "round") ) ]) ]) , ParBreak
test/out/visualize/stroke-01.out view
@@ -48,10 +48,11 @@ [ KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "paint" , Ident (Identifier "red") )- , Reg ( Identifier "thickness" , Literal (Numeric 1.0 Pt) )- , Reg ( Identifier "cap" , Literal (String "butt") )- , Reg ( Identifier "dash" , Literal (String "dash-dotted") )+ [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") )+ , Reg ( Ident (Identifier "thickness") , Literal (Numeric 1.0 Pt) )+ , Reg ( Ident (Identifier "cap") , Literal (String "butt") )+ , Reg+ ( Ident (Identifier "dash") , Literal (String "dash-dotted") ) ]) ]) , SoftBreak@@ -91,7 +92,7 @@ [ KeyValArg (Identifier "length") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "stroke")- (Dict [ Reg ( Identifier "dash" , Literal None ) ])+ (Dict [ Reg ( Ident (Identifier "dash") , Literal None ) ]) ]) , ParBreak ]
test/out/visualize/stroke-02.out view
@@ -66,12 +66,12 @@ , KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "rest" , Ident (Identifier "red") )+ [ Reg ( Ident (Identifier "rest") , Ident (Identifier "red") ) , Reg- ( Identifier "top"+ ( Ident (Identifier "top") , Dict- [ Reg ( Identifier "paint" , Ident (Identifier "blue") )- , Reg ( Identifier "dash" , Literal (String "dashed") )+ [ Reg ( Ident (Identifier "paint") , Ident (Identifier "blue") )+ , Reg ( Ident (Identifier "dash") , Literal (String "dashed") ) ] ) ])@@ -93,8 +93,8 @@ , KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "thickness" , Literal (Numeric 5.0 Pt) )- , Reg ( Identifier "join" , Literal (String "round") )+ [ Reg ( Ident (Identifier "thickness") , Literal (Numeric 5.0 Pt) )+ , Reg ( Ident (Identifier "join") , Literal (String "round") ) ]) ]) , ParBreak
test/out/visualize/stroke-03.out view
@@ -49,10 +49,10 @@ , KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "paint" , Ident (Identifier "red") )- , Reg ( Identifier "thickness" , Literal (Numeric 1.0 Pt) )+ [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") )+ , Reg ( Ident (Identifier "thickness") , Literal (Numeric 1.0 Pt) ) , Reg- ( Identifier "dash"+ ( Ident (Identifier "dash") , Array [ Reg (Literal (String "dot")) , Reg (Literal (Numeric 1.0 Pt)) ] )@@ -74,10 +74,10 @@ , KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "paint" , Ident (Identifier "red") )- , Reg ( Identifier "thickness" , Literal (Numeric 1.0 Pt) )+ [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") )+ , Reg ( Ident (Identifier "thickness") , Literal (Numeric 1.0 Pt) ) , Reg- ( Identifier "dash"+ ( Ident (Identifier "dash") , Array [ Reg (Literal (String "dot")) , Reg (Literal (Numeric 1.0 Pt))@@ -103,13 +103,13 @@ , KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "paint" , Ident (Identifier "red") )- , Reg ( Identifier "thickness" , Literal (Numeric 1.0 Pt) )+ [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") )+ , Reg ( Ident (Identifier "thickness") , Literal (Numeric 1.0 Pt) ) , Reg- ( Identifier "dash"+ ( Ident (Identifier "dash") , Dict [ Reg- ( Identifier "array"+ ( Ident (Identifier "array") , Array [ Reg (Literal (String "dot")) , Reg (Literal (Numeric 1.0 Pt))@@ -117,7 +117,7 @@ , Reg (Literal (Numeric 2.0 Pt)) ] )- , Reg ( Identifier "phase" , Literal (Numeric 5.0 Pt) )+ , Reg ( Ident (Identifier "phase") , Literal (Numeric 5.0 Pt) ) ] ) ])@@ -138,9 +138,9 @@ , KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "paint" , Ident (Identifier "red") )- , Reg ( Identifier "thickness" , Literal (Numeric 1.0 Pt) )- , Reg ( Identifier "dash" , Array [] )+ [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") )+ , Reg ( Ident (Identifier "thickness") , Literal (Numeric 1.0 Pt) )+ , Reg ( Ident (Identifier "dash") , Array [] ) ]) ]) , SoftBreak@@ -159,10 +159,10 @@ , KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "paint" , Ident (Identifier "red") )- , Reg ( Identifier "thickness" , Literal (Numeric 1.0 Pt) )+ [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") )+ , Reg ( Ident (Identifier "thickness") , Literal (Numeric 1.0 Pt) ) , Reg- ( Identifier "dash"+ ( Ident (Identifier "dash") , Array [ Reg (Literal (Numeric 1.0 Pt)) , Reg (Literal (Numeric 3.0 Pt))
test/out/visualize/stroke-04.out view
@@ -53,9 +53,9 @@ [ KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "thickness" , Literal (Numeric 4.0 Pt) )- , Reg ( Identifier "paint" , Ident (Identifier "blue") )- , Reg ( Identifier "join" , Literal (String "round") )+ [ Reg ( Ident (Identifier "thickness") , Literal (Numeric 4.0 Pt) )+ , Reg ( Ident (Identifier "paint") , Ident (Identifier "blue") )+ , Reg ( Ident (Identifier "join") , Literal (String "round") ) ]) , NormalArg (Array@@ -84,9 +84,9 @@ [ KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "thickness" , Literal (Numeric 4.0 Pt) )- , Reg ( Identifier "paint" , Ident (Identifier "blue") )- , Reg ( Identifier "join" , Literal (String "bevel") )+ [ Reg ( Ident (Identifier "thickness") , Literal (Numeric 4.0 Pt) )+ , Reg ( Ident (Identifier "paint") , Ident (Identifier "blue") )+ , Reg ( Ident (Identifier "join") , Literal (String "bevel") ) ]) , NormalArg (Array@@ -115,9 +115,9 @@ [ KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "thickness" , Literal (Numeric 4.0 Pt) )- , Reg ( Identifier "paint" , Ident (Identifier "blue") )- , Reg ( Identifier "join" , Literal (String "miter") )+ [ Reg ( Ident (Identifier "thickness") , Literal (Numeric 4.0 Pt) )+ , Reg ( Ident (Identifier "paint") , Ident (Identifier "blue") )+ , Reg ( Ident (Identifier "join") , Literal (String "miter") ) ]) , NormalArg (Array@@ -146,10 +146,10 @@ [ KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "thickness" , Literal (Numeric 4.0 Pt) )- , Reg ( Identifier "paint" , Ident (Identifier "blue") )- , Reg ( Identifier "join" , Literal (String "miter") )- , Reg ( Identifier "miter-limit" , Literal (Float 20.0) )+ [ Reg ( Ident (Identifier "thickness") , Literal (Numeric 4.0 Pt) )+ , Reg ( Ident (Identifier "paint") , Ident (Identifier "blue") )+ , Reg ( Ident (Identifier "join") , Literal (String "miter") )+ , Reg ( Ident (Identifier "miter-limit") , Literal (Float 20.0) ) ]) , NormalArg (Array
test/out/visualize/stroke-07.out view
@@ -103,10 +103,10 @@ , KeyValArg (Identifier "stroke") (Dict- [ Reg ( Identifier "paint" , Ident (Identifier "red") )- , Reg ( Identifier "thickness" , Literal (Numeric 0.0 Pt) )+ [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") )+ , Reg ( Ident (Identifier "thickness") , Literal (Numeric 0.0 Pt) ) , Reg- ( Identifier "dash"+ ( Ident (Identifier "dash") , Array [ Reg (Literal (String "dot")) , Reg (Literal (Numeric 1.0 Pt)) ] )
+ test/typ/regression/issue19.typ view
@@ -0,0 +1,7 @@+#let nums = (1, none, 2)+#nums.map(num => {+ if num == none {+ return 1+ }+ return ((str(num)): 1)+})
+ test/typ/regression/issue20.typ view
@@ -0,0 +1,5 @@+#let a = "+This is a+multiline string+"+#a.len()
+ test/typ/regression/issue21.typ view
@@ -0,0 +1,2 @@+#version(1,2)+#version(1,2).at(3)
+ test/typ/regression/issue21b.typ view
@@ -0,0 +1,4 @@+#import "issue19.typ" as zeke+#zeke.nums+#import "issue20.typ": a as multiline+#multiline
+ test/typ/regression/issue23.typ view
@@ -0,0 +1,10 @@+#let fn() = {+ set text(fill: red)+ if true [+ test+ ] else [+ test2+ ]+}++#fn()
typst.cabal view
@@ -1,6 +1,6 @@ cabal-version: 2.4 name: typst-version: 0.4+version: 0.5 synopsis: Parsing and evaluating typst syntax. description: A library for parsing and evaluating typst syntax. Typst (<https://typst.app>) is a document layout and