# Copyright 2005-2007 Kevin Reid, under the terms of the MIT X license # found at http://www.opensource.org/licenses/mit-license.html ................ E syntax ? def pp := ; null ? def dumpENodes := ; null ? def t(s) :any { return dumpENodes(pp.run(s), stdout) }; null ? t("π") # stdout: NounE. π ? t("`π`") # stdout: QuasiE. # null # [] QuasiText π ? t("`$π`") # stdout: QuasiE. # null # [] QuasiE.Hole NounE. π Sam Ruby's test string ' ? def t := "Iñtërnâtiônàlizætiøn" # value: "Iñtërnâtiônàlizætiøn" Check that a single big-char is retrieved properly ? t[1] # value: 'ñ' ? t[1] == 'ñ' # value: true Check that a substring is retrieved properly ? t(18) # value: "øn" Using Unicode letters in nouns ? def π := 3.14159 # value: 3.14159 ? def π2 := π * 2 # value: 6.28318 ? e`def π2 := π * 2`.asKernelE() # value: e`def π2 := π.multiply(2)` Codepoints ? for c in " !Az~ ¡þÿ" { print(" ", c.getCodepoint().toString(["base" => 16])) } # stdout: 20 21 41 7a 7e a0 a1 fe ff XXX more general unicode tests as I think of them XXX support Unicode normalization as guards, then ensure that it's used for nouns, to avoid surprises