# Note: For simplicity we will not check the syntax highlighting of fixed # keywords like 'define-public', only the highlighting of patterns Given scheme.guile (Multi-line comment): #!/usr/local/bin/guile -s !# #! This is a multi-line comment !# Execute: for i in range(1, 25) AssertEqual 'guileComment', SyntaxAt(1, i) endfor AssertEqual 'guileComment', SyntaxAt(2, 1) AssertEqual 'guileComment', SyntaxAt(2, 2) for i in range(1, 12) AssertEqual 'guileComment', SyntaxAt(3, i) endfor for i in range(1, 21) AssertEqual 'guileComment', SyntaxAt(4, i) endfor ----------------------------------------------------------------------------- Given scheme.guile (keywords): #:keyword #:key-word Execute: for i in range(1, 9) AssertEqual 'guileKeyword', SyntaxAt(1, i) endfor for i in range(1, 10) AssertEqual 'guileKeyword', SyntaxAt(2, i) endfor ----------------------------------------------------------------------------- Given scheme.guile (Boolean literals): #true #false Execute: for i in range(1, 5) AssertEqual 'guileBoolean', SyntaxAt(1, i) endfor for i in range(1, 6) AssertEqual 'guileBoolean', SyntaxAt(2, i) endfor ----------------------------------------------------------------------------- Given scheme.guile (Unspecified object representation): # Execute: for i in range(1, 14) AssertEqual 'guileConstant', SyntaxAt(1, i) endfor ----------------------------------------------------------------------------- Given scheme.guile (Bytevector literal): #vu8(1 2 3 4) Execute: for i in range(1, 4) AssertEqual 'guileQuote', SyntaxAt(1, i) endfor ----------------------------------------------------------------------------- Given scheme.guile (Integer number literals): #b0101 #b+0101 #b-0101 #B0101 #B+0101 #B-0101 #o0237 #o+0237 #o-0237 #O0237 #O+0237 #O-0237 #d0239 #d+0239 #d-0239 #D0239 #D+0239 #D-0239 #x03AF #x+03AF #x-03AF #X03AF #X+03AF #X-03AF #x03af #x+03af #x-03af #X03af #X+03af #X-03af Execute: for i in range(1, 5) for j in range(1, 6) for k in [0, 7, 15, 23, 30, 38] AssertEqual 'guileNumber', SyntaxAt(i, k + j) endfor endfor endfor ----------------------------------------------------------------------------- Given scheme.guile (Exact decimal number literls): #e012345 #e+01234 #e-01234 #E012345 #E+01234 #E-01234 #e.12345 #e+.1234 #e-.1234 #E.12345 #E+.1234 #E-.1234 #e0.1234 #e+0.123 #e-0.123 #E0.1234 #E+0.123 #E-0.123 Execute: for line in [1, 2] for offset in range(0, 5) for column in range(1, 8) AssertEqual 'guileNumber', SyntaxAt(line, offset * 9 + column) endfor endfor endfor ----------------------------------------------------------------------------- Given scheme.guile (Infinity and NaN literals): +inf.0 -inf.0 +nan.0 -nan.0 Execute: for offset in range(0, 3) for i in range(1, 6) AssertEqual 'guileNumber', SyntaxAt(1, offset * 7 + i) endfor endfor ----------------------------------------------------------------------------- Given scheme.guile (Syntax-rule macro): (define-syntax-rule (first-of expr expr* ...) expr) Execute: for i in range(2, 19) AssertEqual 'guileSyntaxSyntax', SyntaxAt(1, i) endfor