summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2022-03-11 11:58:56 +0100
committerLaurenz <laurmaedje@gmail.com>2022-03-11 11:58:56 +0100
commite6b532391deb1e30dc356c4d20dd48199f748f29 (patch)
tree7b631414931164b9a47c9d154172195fc0e1316c
parentb71113d37a29bab5c7dc4b501c33ee9afbdb8213 (diff)
More restructuring
-rw-r--r--src/eval/layout.rs3
-rw-r--r--src/eval/mod.rs8
-rw-r--r--src/eval/template.rs2
-rw-r--r--src/library/elements/mod.rs15
-rw-r--r--src/library/graphics/hide.rs (renamed from src/library/layout/hide.rs)0
-rw-r--r--src/library/graphics/image.rs (renamed from src/library/elements/image.rs)0
-rw-r--r--src/library/graphics/mod.rs11
-rw-r--r--src/library/graphics/shape.rs (renamed from src/library/elements/shape.rs)0
-rw-r--r--src/library/graphics/transform.rs (renamed from src/library/layout/transform.rs)0
-rw-r--r--src/library/layout/mod.rs4
-rw-r--r--src/library/math/mod.rs (renamed from src/library/elements/math.rs)0
-rw-r--r--src/library/mod.rs40
-rw-r--r--src/library/structure/heading.rs (renamed from src/library/elements/heading.rs)0
-rw-r--r--src/library/structure/list.rs (renamed from src/library/elements/list.rs)0
-rw-r--r--src/library/structure/mod.rs9
-rw-r--r--src/library/structure/table.rs (renamed from src/library/elements/table.rs)0
-rw-r--r--tests/ref/graphics/hide.png (renamed from tests/ref/layout/hide.png)bin936 -> 936 bytes
-rw-r--r--tests/ref/graphics/image.png (renamed from tests/ref/elements/image.png)bin183386 -> 183386 bytes
-rw-r--r--tests/ref/graphics/shape-aspect.png (renamed from tests/ref/elements/shape-aspect.png)bin4663 -> 4663 bytes
-rw-r--r--tests/ref/graphics/shape-circle.png (renamed from tests/ref/elements/shape-circle.png)bin40653 -> 40653 bytes
-rw-r--r--tests/ref/graphics/shape-ellipse.png (renamed from tests/ref/elements/shape-ellipse.png)bin22046 -> 22046 bytes
-rw-r--r--tests/ref/graphics/shape-fill-stroke.png (renamed from tests/ref/elements/shape-fill-stroke.png)bin2893 -> 2893 bytes
-rw-r--r--tests/ref/graphics/shape-rect.png (renamed from tests/ref/elements/shape-rect.png)bin7261 -> 7261 bytes
-rw-r--r--tests/ref/graphics/shape-square.png (renamed from tests/ref/elements/shape-square.png)bin18777 -> 18777 bytes
-rw-r--r--tests/ref/graphics/transform.png (renamed from tests/ref/layout/transform.png)bin56525 -> 56525 bytes
-rw-r--r--tests/ref/math/basic.png (renamed from tests/ref/elements/math.png)bin3444 -> 3444 bytes
-rw-r--r--tests/ref/structure/enum.png (renamed from tests/ref/elements/enum.png)bin26118 -> 26118 bytes
-rw-r--r--tests/ref/structure/heading.png (renamed from tests/ref/elements/heading.png)bin25291 -> 25291 bytes
-rw-r--r--tests/ref/structure/list.png (renamed from tests/ref/elements/list.png)bin21396 -> 21396 bytes
-rw-r--r--tests/ref/structure/table.png (renamed from tests/ref/elements/table.png)bin1566 -> 1566 bytes
-rw-r--r--tests/ref/utility/numbering.png (renamed from tests/ref/utility/strings.png)bin10634 -> 10634 bytes
-rw-r--r--tests/typ/graphics/hide.typ (renamed from tests/typ/layout/hide.typ)0
-rw-r--r--tests/typ/graphics/image.typ (renamed from tests/typ/elements/image.typ)0
-rw-r--r--tests/typ/graphics/shape-aspect.typ (renamed from tests/typ/elements/shape-aspect.typ)0
-rw-r--r--tests/typ/graphics/shape-circle.typ (renamed from tests/typ/elements/shape-circle.typ)0
-rw-r--r--tests/typ/graphics/shape-ellipse.typ (renamed from tests/typ/elements/shape-ellipse.typ)0
-rw-r--r--tests/typ/graphics/shape-fill-stroke.typ (renamed from tests/typ/elements/shape-fill-stroke.typ)0
-rw-r--r--tests/typ/graphics/shape-rect.typ (renamed from tests/typ/elements/shape-rect.typ)0
-rw-r--r--tests/typ/graphics/shape-square.typ (renamed from tests/typ/elements/shape-square.typ)0
-rw-r--r--tests/typ/graphics/transform.typ (renamed from tests/typ/layout/transform.typ)0
-rw-r--r--tests/typ/math/basic.typ (renamed from tests/typ/elements/math.typ)0
-rw-r--r--tests/typ/structure/enum.typ (renamed from tests/typ/elements/enum.typ)0
-rw-r--r--tests/typ/structure/heading.typ (renamed from tests/typ/elements/heading.typ)0
-rw-r--r--tests/typ/structure/list.typ (renamed from tests/typ/elements/list.typ)0
-rw-r--r--tests/typ/structure/table.typ (renamed from tests/typ/elements/table.typ)0
-rw-r--r--tests/typ/utility/collection.typ11
-rw-r--r--tests/typ/utility/numbering.typ19
-rw-r--r--tests/typ/utility/strings.typ34
48 files changed, 80 insertions, 76 deletions
diff --git a/src/eval/layout.rs b/src/eval/layout.rs
index 02912544..135e5e04 100644
--- a/src/eval/layout.rs
+++ b/src/eval/layout.rs
@@ -9,7 +9,8 @@ use crate::diag::TypResult;
use crate::eval::StyleChain;
use crate::frame::{Element, Frame, Geometry, Shape, Stroke};
use crate::geom::{Align, Length, Linear, Paint, Point, Sides, Size, Spec, Transform};
-use crate::library::layout::{AlignNode, MoveNode, PadNode};
+use crate::library::graphics::MoveNode;
+use crate::library::layout::{AlignNode, PadNode};
use crate::util::Prehashed;
use crate::Context;
diff --git a/src/eval/mod.rs b/src/eval/mod.rs
index f8b4b0f0..590b8463 100644
--- a/src/eval/mod.rs
+++ b/src/eval/mod.rs
@@ -155,7 +155,7 @@ impl Eval for MathNode {
type Output = Template;
fn eval(&self, _: &mut Context, _: &mut Scopes) -> EvalResult<Self::Output> {
- Ok(Template::show(library::elements::MathNode {
+ Ok(Template::show(library::math::MathNode {
formula: self.formula.clone(),
display: self.display,
}))
@@ -166,7 +166,7 @@ impl Eval for HeadingNode {
type Output = Template;
fn eval(&self, ctx: &mut Context, scp: &mut Scopes) -> EvalResult<Self::Output> {
- Ok(Template::show(library::elements::HeadingNode {
+ Ok(Template::show(library::structure::HeadingNode {
body: self.body().eval(ctx, scp)?,
level: self.level(),
}))
@@ -177,7 +177,7 @@ impl Eval for ListNode {
type Output = Template;
fn eval(&self, ctx: &mut Context, scp: &mut Scopes) -> EvalResult<Self::Output> {
- Ok(Template::List(library::elements::ListItem {
+ Ok(Template::List(library::structure::ListItem {
number: None,
body: Box::new(self.body().eval(ctx, scp)?),
}))
@@ -188,7 +188,7 @@ impl Eval for EnumNode {
type Output = Template;
fn eval(&self, ctx: &mut Context, scp: &mut Scopes) -> EvalResult<Self::Output> {
- Ok(Template::Enum(library::elements::ListItem {
+ Ok(Template::Enum(library::structure::ListItem {
number: self.number(),
body: Box::new(self.body().eval(ctx, scp)?),
}))
diff --git a/src/eval/template.rs b/src/eval/template.rs
index 94cc0aff..3e88b6d7 100644
--- a/src/eval/template.rs
+++ b/src/eval/template.rs
@@ -10,9 +10,9 @@ use super::{
StyleMap, StyleVecBuilder,
};
use crate::diag::StrResult;
-use crate::library::elements::{ListItem, ListKind, ListNode, ORDERED, UNORDERED};
use crate::library::layout::{FlowChild, FlowNode, PageNode, PlaceNode, SpacingKind};
use crate::library::prelude::*;
+use crate::library::structure::{ListItem, ListKind, ListNode, ORDERED, UNORDERED};
use crate::library::text::{DecoNode, ParChild, ParNode, TextNode, UNDERLINE};
use crate::util::EcoString;
diff --git a/src/library/elements/mod.rs b/src/library/elements/mod.rs
deleted file mode 100644
index 572010bb..00000000
--- a/src/library/elements/mod.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-//! Primitive and semantic elements.
-
-mod heading;
-mod image;
-mod list;
-mod math;
-mod shape;
-mod table;
-
-pub use self::image::*;
-pub use heading::*;
-pub use list::*;
-pub use math::*;
-pub use shape::*;
-pub use table::*;
diff --git a/src/library/layout/hide.rs b/src/library/graphics/hide.rs
index 861a1208..861a1208 100644
--- a/src/library/layout/hide.rs
+++ b/src/library/graphics/hide.rs
diff --git a/src/library/elements/image.rs b/src/library/graphics/image.rs
index 66fb8f4b..66fb8f4b 100644
--- a/src/library/elements/image.rs
+++ b/src/library/graphics/image.rs
diff --git a/src/library/graphics/mod.rs b/src/library/graphics/mod.rs
new file mode 100644
index 00000000..353f09ca
--- /dev/null
+++ b/src/library/graphics/mod.rs
@@ -0,0 +1,11 @@
+//! Graphical elements and effects.
+
+mod hide;
+mod image;
+mod shape;
+mod transform;
+
+pub use self::image::*;
+pub use hide::*;
+pub use shape::*;
+pub use transform::*;
diff --git a/src/library/elements/shape.rs b/src/library/graphics/shape.rs
index 8b967412..8b967412 100644
--- a/src/library/elements/shape.rs
+++ b/src/library/graphics/shape.rs
diff --git a/src/library/layout/transform.rs b/src/library/graphics/transform.rs
index fafb37a4..fafb37a4 100644
--- a/src/library/layout/transform.rs
+++ b/src/library/graphics/transform.rs
diff --git a/src/library/layout/mod.rs b/src/library/layout/mod.rs
index 944548ab..588b15aa 100644
--- a/src/library/layout/mod.rs
+++ b/src/library/layout/mod.rs
@@ -5,23 +5,19 @@ mod columns;
mod container;
mod flow;
mod grid;
-mod hide;
mod pad;
mod page;
mod place;
mod spacing;
mod stack;
-mod transform;
pub use align::*;
pub use columns::*;
pub use container::*;
pub use flow::*;
pub use grid::*;
-pub use hide::*;
pub use pad::*;
pub use page::*;
pub use place::*;
pub use spacing::*;
pub use stack::*;
-pub use transform::*;
diff --git a/src/library/elements/math.rs b/src/library/math/mod.rs
index 761b4480..761b4480 100644
--- a/src/library/elements/math.rs
+++ b/src/library/math/mod.rs
diff --git a/src/library/mod.rs b/src/library/mod.rs
index 4a80ef43..ceb5a557 100644
--- a/src/library/mod.rs
+++ b/src/library/mod.rs
@@ -3,9 +3,11 @@
//! Call [`new`] to obtain a [`Scope`] containing all standard library
//! definitions.
-pub mod elements;
+pub mod graphics;
pub mod layout;
+pub mod math;
pub mod prelude;
+pub mod structure;
pub mod text;
pub mod utility;
@@ -18,8 +20,8 @@ pub fn new() -> Scope {
// Text.
std.def_class::<text::TextNode>("text");
std.def_class::<text::ParNode>("par");
- std.def_class::<text::ParbreakNode>("parbreak");
std.def_class::<text::LinebreakNode>("linebreak");
+ std.def_class::<text::ParbreakNode>("parbreak");
std.def_class::<text::StrongNode>("strong");
std.def_class::<text::EmphNode>("emph");
std.def_class::<text::RawNode>("raw");
@@ -28,17 +30,11 @@ pub fn new() -> Scope {
std.def_class::<text::OverlineNode>("overline");
std.def_class::<text::LinkNode>("link");
- // Elements.
- std.def_class::<elements::MathNode>("math");
- std.def_class::<elements::HeadingNode>("heading");
- std.def_class::<elements::ListNode>("list");
- std.def_class::<elements::EnumNode>("enum");
- std.def_class::<elements::TableNode>("table");
- std.def_class::<elements::ImageNode>("image");
- std.def_class::<elements::RectNode>("rect");
- std.def_class::<elements::SquareNode>("square");
- std.def_class::<elements::EllipseNode>("ellipse");
- std.def_class::<elements::CircleNode>("circle");
+ // Structure.
+ std.def_class::<structure::HeadingNode>("heading");
+ std.def_class::<structure::ListNode>("list");
+ std.def_class::<structure::EnumNode>("enum");
+ std.def_class::<structure::TableNode>("table");
// Layout.
std.def_class::<layout::PageNode>("page");
@@ -54,10 +50,20 @@ pub fn new() -> Scope {
std.def_class::<layout::ColumnsNode>("columns");
std.def_class::<layout::ColbreakNode>("colbreak");
std.def_class::<layout::PlaceNode>("place");
- std.def_class::<layout::MoveNode>("move");
- std.def_class::<layout::ScaleNode>("scale");
- std.def_class::<layout::RotateNode>("rotate");
- std.def_class::<layout::HideNode>("hide");
+
+ // Graphics.
+ std.def_class::<graphics::ImageNode>("image");
+ std.def_class::<graphics::RectNode>("rect");
+ std.def_class::<graphics::SquareNode>("square");
+ std.def_class::<graphics::EllipseNode>("ellipse");
+ std.def_class::<graphics::CircleNode>("circle");
+ std.def_class::<graphics::MoveNode>("move");
+ std.def_class::<graphics::ScaleNode>("scale");
+ std.def_class::<graphics::RotateNode>("rotate");
+ std.def_class::<graphics::HideNode>("hide");
+
+ // Math.
+ std.def_class::<math::MathNode>("math");
// Utility functions.
std.def_func("assert", utility::assert);
diff --git a/src/library/elements/heading.rs b/src/library/structure/heading.rs
index a67f4f24..a67f4f24 100644
--- a/src/library/elements/heading.rs
+++ b/src/library/structure/heading.rs
diff --git a/src/library/elements/list.rs b/src/library/structure/list.rs
index 2c536e2a..2c536e2a 100644
--- a/src/library/elements/list.rs
+++ b/src/library/structure/list.rs
diff --git a/src/library/structure/mod.rs b/src/library/structure/mod.rs
new file mode 100644
index 00000000..073d52e9
--- /dev/null
+++ b/src/library/structure/mod.rs
@@ -0,0 +1,9 @@
+//! Document structuring.
+
+mod heading;
+mod list;
+mod table;
+
+pub use heading::*;
+pub use list::*;
+pub use table::*;
diff --git a/src/library/elements/table.rs b/src/library/structure/table.rs
index 555dcc44..555dcc44 100644
--- a/src/library/elements/table.rs
+++ b/src/library/structure/table.rs
diff --git a/tests/ref/layout/hide.png b/tests/ref/graphics/hide.png
index 8a60cf90..8a60cf90 100644
--- a/tests/ref/layout/hide.png
+++ b/tests/ref/graphics/hide.png
Binary files differ
diff --git a/tests/ref/elements/image.png b/tests/ref/graphics/image.png
index 11a28980..11a28980 100644
--- a/tests/ref/elements/image.png
+++ b/tests/ref/graphics/image.png
Binary files differ
diff --git a/tests/ref/elements/shape-aspect.png b/tests/ref/graphics/shape-aspect.png
index 719c1e6e..719c1e6e 100644
--- a/tests/ref/elements/shape-aspect.png
+++ b/tests/ref/graphics/shape-aspect.png
Binary files differ
diff --git a/tests/ref/elements/shape-circle.png b/tests/ref/graphics/shape-circle.png
index 040c6f0b..040c6f0b 100644
--- a/tests/ref/elements/shape-circle.png
+++ b/tests/ref/graphics/shape-circle.png
Binary files differ
diff --git a/tests/ref/elements/shape-ellipse.png b/tests/ref/graphics/shape-ellipse.png
index 740f005f..740f005f 100644
--- a/tests/ref/elements/shape-ellipse.png
+++ b/tests/ref/graphics/shape-ellipse.png
Binary files differ
diff --git a/tests/ref/elements/shape-fill-stroke.png b/tests/ref/graphics/shape-fill-stroke.png
index 12fcbd55..12fcbd55 100644
--- a/tests/ref/elements/shape-fill-stroke.png
+++ b/tests/ref/graphics/shape-fill-stroke.png
Binary files differ
diff --git a/tests/ref/elements/shape-rect.png b/tests/ref/graphics/shape-rect.png
index 1fdb0dac..1fdb0dac 100644
--- a/tests/ref/elements/shape-rect.png
+++ b/tests/ref/graphics/shape-rect.png
Binary files differ
diff --git a/tests/ref/elements/shape-square.png b/tests/ref/graphics/shape-square.png
index 00a0c848..00a0c848 100644
--- a/tests/ref/elements/shape-square.png
+++ b/tests/ref/graphics/shape-square.png
Binary files differ
diff --git a/tests/ref/layout/transform.png b/tests/ref/graphics/transform.png
index 65d94758..65d94758 100644
--- a/tests/ref/layout/transform.png
+++ b/tests/ref/graphics/transform.png
Binary files differ
diff --git a/tests/ref/elements/math.png b/tests/ref/math/basic.png
index 77ec8d51..77ec8d51 100644
--- a/tests/ref/elements/math.png
+++ b/tests/ref/math/basic.png
Binary files differ
diff --git a/tests/ref/elements/enum.png b/tests/ref/structure/enum.png
index ecd1cf53..ecd1cf53 100644
--- a/tests/ref/elements/enum.png
+++ b/tests/ref/structure/enum.png
Binary files differ
diff --git a/tests/ref/elements/heading.png b/tests/ref/structure/heading.png
index 09f3d7c7..09f3d7c7 100644
--- a/tests/ref/elements/heading.png
+++ b/tests/ref/structure/heading.png
Binary files differ
diff --git a/tests/ref/elements/list.png b/tests/ref/structure/list.png
index 503bfc9a..503bfc9a 100644
--- a/tests/ref/elements/list.png
+++ b/tests/ref/structure/list.png
Binary files differ
diff --git a/tests/ref/elements/table.png b/tests/ref/structure/table.png
index bc70d548..bc70d548 100644
--- a/tests/ref/elements/table.png
+++ b/tests/ref/structure/table.png
Binary files differ
diff --git a/tests/ref/utility/strings.png b/tests/ref/utility/numbering.png
index d4d575d9..d4d575d9 100644
--- a/tests/ref/utility/strings.png
+++ b/tests/ref/utility/numbering.png
Binary files differ
diff --git a/tests/typ/layout/hide.typ b/tests/typ/graphics/hide.typ
index a979b24f..a979b24f 100644
--- a/tests/typ/layout/hide.typ
+++ b/tests/typ/graphics/hide.typ
diff --git a/tests/typ/elements/image.typ b/tests/typ/graphics/image.typ
index 8817713f..8817713f 100644
--- a/tests/typ/elements/image.typ
+++ b/tests/typ/graphics/image.typ
diff --git a/tests/typ/elements/shape-aspect.typ b/tests/typ/graphics/shape-aspect.typ
index 2c3e9b0c..2c3e9b0c 100644
--- a/tests/typ/elements/shape-aspect.typ
+++ b/tests/typ/graphics/shape-aspect.typ
diff --git a/tests/typ/elements/shape-circle.typ b/tests/typ/graphics/shape-circle.typ
index 4b978e86..4b978e86 100644
--- a/tests/typ/elements/shape-circle.typ
+++ b/tests/typ/graphics/shape-circle.typ
diff --git a/tests/typ/elements/shape-ellipse.typ b/tests/typ/graphics/shape-ellipse.typ
index 154144c4..154144c4 100644
--- a/tests/typ/elements/shape-ellipse.typ
+++ b/tests/typ/graphics/shape-ellipse.typ
diff --git a/tests/typ/elements/shape-fill-stroke.typ b/tests/typ/graphics/shape-fill-stroke.typ
index 935f3bc7..935f3bc7 100644
--- a/tests/typ/elements/shape-fill-stroke.typ
+++ b/tests/typ/graphics/shape-fill-stroke.typ
diff --git a/tests/typ/elements/shape-rect.typ b/tests/typ/graphics/shape-rect.typ
index add39b80..add39b80 100644
--- a/tests/typ/elements/shape-rect.typ
+++ b/tests/typ/graphics/shape-rect.typ
diff --git a/tests/typ/elements/shape-square.typ b/tests/typ/graphics/shape-square.typ
index c4ece778..c4ece778 100644
--- a/tests/typ/elements/shape-square.typ
+++ b/tests/typ/graphics/shape-square.typ
diff --git a/tests/typ/layout/transform.typ b/tests/typ/graphics/transform.typ
index 82ee1390..82ee1390 100644
--- a/tests/typ/layout/transform.typ
+++ b/tests/typ/graphics/transform.typ
diff --git a/tests/typ/elements/math.typ b/tests/typ/math/basic.typ
index cad01d10..cad01d10 100644
--- a/tests/typ/elements/math.typ
+++ b/tests/typ/math/basic.typ
diff --git a/tests/typ/elements/enum.typ b/tests/typ/structure/enum.typ
index 8ba3cea6..8ba3cea6 100644
--- a/tests/typ/elements/enum.typ
+++ b/tests/typ/structure/enum.typ
diff --git a/tests/typ/elements/heading.typ b/tests/typ/structure/heading.typ
index 2ae97aa8..2ae97aa8 100644
--- a/tests/typ/elements/heading.typ
+++ b/tests/typ/structure/heading.typ
diff --git a/tests/typ/elements/list.typ b/tests/typ/structure/list.typ
index 38fc2c63..38fc2c63 100644
--- a/tests/typ/elements/list.typ
+++ b/tests/typ/structure/list.typ
diff --git a/tests/typ/elements/table.typ b/tests/typ/structure/table.typ
index 0372951c..0372951c 100644
--- a/tests/typ/elements/table.typ
+++ b/tests/typ/structure/table.typ
diff --git a/tests/typ/utility/collection.typ b/tests/typ/utility/collection.typ
index a4bc817e..649be4f7 100644
--- a/tests/typ/utility/collection.typ
+++ b/tests/typ/utility/collection.typ
@@ -17,6 +17,17 @@
#len(12pt)
---
+// Test the `upper` and `lower` functions.
+#let memes = "ArE mEmEs gReAt?";
+#test(lower(memes), "are memes great?")
+#test(upper(memes), "ARE MEMES GREAT?")
+#test(upper("Ελλάδα"), "ΕΛΛΆΔΑ")
+
+---
+// Error: 8-9 expected string or template, found integer
+#upper(1)
+
+---
// Test the `sorted` function.
#test(sorted(()), ())
#test(sorted((true, false) * 10), (false,) * 10 + (true,) * 10)
diff --git a/tests/typ/utility/numbering.typ b/tests/typ/utility/numbering.typ
new file mode 100644
index 00000000..65dc12d0
--- /dev/null
+++ b/tests/typ/utility/numbering.typ
@@ -0,0 +1,19 @@
+// Test numbering formatting functions.
+
+---
+#upper("Abc 8")
+#upper[def]
+
+#lower("SCREAMING MUST BE SILENCED in " + roman(1672) + " years")
+
+#for i in range(9) {
+ symbol(i)
+ [ and ]
+ roman(i)
+ [ for #i]
+ parbreak()
+}
+
+---
+// Error: 9-11 must be at least zero
+#symbol(-1)
diff --git a/tests/typ/utility/strings.typ b/tests/typ/utility/strings.typ
deleted file mode 100644
index 4222266b..00000000
--- a/tests/typ/utility/strings.typ
+++ /dev/null
@@ -1,34 +0,0 @@
-// Test string handling functions.
-// Ref: false
-
----
-// Test the `upper`, `lower`, and number formatting functions.
-#let memes = "ArE mEmEs gReAt?";
-#test(lower(memes), "are memes great?")
-#test(upper(memes), "ARE MEMES GREAT?")
-#test(upper("Ελλάδα"), "ΕΛΛΆΔΑ")
-
----
-// Test numbering formatting functions.
-// Ref: true
-
-#upper("Abc 8")
-#upper[def]
-
-#lower("SCREAMING MUST BE SILENCED in " + roman(1672) + " years")
-
-#for i in range(9) {
- symbol(i)
- [ and ]
- roman(i)
- [ for #i]
- parbreak()
-}
-
----
-// Error: 8-9 expected string or template, found integer
-#upper(1)
-
----
-// Error: 9-11 must be at least zero
-#symbol(-1)