Renderingen-US

Experimental through version 1. Version 0 was alpha. This is the first language release: the interface is relatively stable, not frozen. Nothing is promised stable until version 2.

guillemet

Translation status: English reader-locale proof. Term names and code fences follow the en pack; supporting prose may still be English.

Guillemet string literals: quotes and apostrophes need no escape.

Syntax: «<text>»

Category#

literal

Examples#

radix/corpus/literalia/guillemet-quotes.fab (canonical · existing-home)#

Guillemet string literals: quotes and apostrophes need no escape.

# =============================================================================
# guillemet — « … » string literals with unescaped quotes.
# =============================================================================
#
# What this teaches:
#   • a guillemet string needs no escape for a double quote or an apostrophe:
#       «she said "hi" and it's fine»
#   • template holes apply to guillemets too: «hello, §»("me")
#   • the literal may span lines; \n and \t still decode
#   • a raw » closes the literal, so a guillemet cannot contain »
#
# Common mistakes:
#   • Writing \" or \' inside «...» — neither needs an escape.
#   • Nesting guillemets — the first » closes the literal.
#
# See also: string, block-string, string
# =============================================================================

# literalia/guillemet-quotes — « ... » literals
#
# GRAMMAR:
#   blockStringLit :← '«' ... '»'
#
# EXPECTED OUTPUT:
#   she said "hi" and it's fine
#   hello, me
#   line one
#   line two
#   tab<TAB>here

main {
    print «she said "hi" and it's fine»
    print «hello, §»("me")
    print «line one\nline two»
    let string a ← «x "y" z»
    print «tab\there»
}

Expected output:

she said "hi" and it's fine
hello, me
line one
line two
tab	here