# expect/tcl code to test the das scanner
# jhrg
#
# $Log: scanner.2.exp,v $
# Revision 1.3 2002/06/03 22:21:16 jimg
# Merged with release-3-2-9
#
# Revision 1.2.54.1 2001/11/01 00:43:52 jimg
# Fixes to the scanners and parsers so that dataset variable names may
# start with digits. I've expanded the set of characters that may appear
# in a variable name and made it so that all except `#' may appear at
# the start. Some characters are not allowed in variables that appear in
# a DDS or CE while they are allowed in the DAS. This makes it possible
# to define containers with names like `COARDS:long_name.' Putting a colon
# in a variable name makes the CE parser much more complex. Since the set
# of characters that people want seems pretty limited (compared to the
# complete ASCII set) I think this is an OK approach. If we have to open
# up the expr.lex scanner completely, then we can but not without adding
# lots of action clauses to teh parser. Note that colon is just an example,
# there's a host of characters that are used in CEs that are not allowed
# in IDs.
#
# Revision 1.2 1997/05/05 20:29:22 jimg
# *** empty log message ***
#
# Revision 1.1 1996/07/16 16:54:33 jimg
# Added.
#
#
global comp_output # contains output from das-test_start
global verbose # this and srcdir are set by runtest.exp
global srcdir
set test_name scanner.2
set prompt "das-test:"
set timeout 2
set pass 1
das-test_start s
expect {
"${prompt} " {
}
timeout {
send_user "Timeout\n"
set pass 0
}
}
if {$pass} {
set thing "a\r\n"
send $thing
expect {
-re ".*WORD=${thing}${prompt} $" {
}
timeout {
send_user "Timeout\n"
set pass 0
}
}
}
if {$pass} {
set thing "averylongidentifierthatishardtoread\r\n"
send $thing
expect {
-re ".*WORD=${thing}${prompt} $" {
}
timeout {
send_user "Timeout\n"
set pass 0
}
}
}
if {$pass} {
set thing "a_very_long_identifier_that_is_not_hard_to_read\r\n"
send $thing
expect {
-re ".*WORD=${thing}${prompt} $" {
}
timeout {
send_user "Timeout\n"
set pass 0
}
}
}
if {$pass} {
set thing "One_That_HASCAPITALS\r\n"
send $thing
expect {
-re ".*WORD=${thing}${prompt} $" {
}
timeout {
send_user "Timeout\n"
set pass 0
}
}
}
if {$pass} {
set thing "One_That_has_1234567890\r\n"
send $thing
expect {
-re ".*WORD=${thing}${prompt} $" {
}
timeout {
send_user "Timeout\n"
set pass 0
}
}
}
if {$pass} {
set thing "z1234567890\r\n"
send $thing
expect {
-re ".*WORD=${thing}${prompt} $" {
}
timeout {
send_user "Timeout\n"
set pass 0
}
}
}
# Some things that are *not* identifiers! These should scan as strings.
# But now (5/5/97) people have convinced me to let these through! Arrgh...
# jhrg.
if {$pass} {
set thing "a0.9\r\n"
send $thing
expect {
-re ".*WORD=${thing}${prompt} $" {
}
timeout {
send_user "Timeout\n"
set pass 0
}
}
}
if {$pass} {
pass $test_name
} else {
fail $test_name
}
das-test_exit