Existence Tests

<?cs if:?#0 ?>
  All numbers exist
<?cs else ?>
  ERROR
<?cs /if ?>

<?cs if:?"Wow" ?>
  All strings exist
<?cs else ?>
  ERROR
<?cs /if ?>

<?cs if:?("wow" + #5) ?>
  All expressions exist
<?cs else ?>
  ERROR
<?cs /if ?>

<?cs if:?Blah ?>
  <?cs name:Blah ?> Exists
<?cs else ?>
  ERROR
<?cs /if ?>

<?cs if:?Wow.Foo ?>
  <?cs name:Wow.Foo ?> Exists
<?cs else ?>
  ERROR
<?cs /if ?>

<?cs if:?Blooey ?>
  ERROR
<?cs else ?>
  Blooey doesn't exist
<?cs /if ?>

<?cs if:!?Blooey ?>
  Blooey doesn't exist
<?cs else ?>
  ERROR
<?cs /if ?>

<?cs if:Blooey ?>
  ERROR
<?cs else ?>
  Blooey doesn't exist (implied)
<?cs /if ?>

<?cs if:!Blooey ?>
  Blooey doesn't exist (implied negative)
<?cs else ?>
  ERROR
<?cs /if ?>

<?cs if:Blooey || TestIf ?>
  ERROR
<?cs else ?>
  CORRECT boolean test, blooey doesn't exist, testif == 0 so its false
<?cs /if ?>

<?cs if:?Blooey || ?TestIf ?>
  explicit existence test
<?cs else ?>
  ERROR
<?cs /if ?>

testing not op

<?cs if:!#0 ?>
  Testing not zero
<?cs else ?>
  ERROR
<?cs /if ?>

<?cs if:!#1 ?>
  ERROR
<?cs else ?>
  Testing not one
<?cs /if ?>

<?cs if:!$1 ?>
  Testing not exist var one
<?cs else ?>
  ERROR
<?cs /if ?>

<?cs if:!(?Blooey || ?TestIf) ?>
 ERROR
<?cs else ?>
  not expression existence test
<?cs /if ?>

<?cs if:!(#0 || Blooey) ?>
  not expression test
<?cs else ?>
 ERROR
<?cs /if ?>

<?cs if:!(#0 || arg1) ?>
 ERROR
<?cs else ?>
  not expression test
<?cs /if ?>

 array exists test 
<?cs var:Days[TestIf] ?>
<?cs if:?Days[TestIf] ?>
 PASS
<?cs else ?>
 ERROR
<?cs /if ?>

array element exists test
<?cs var:Days[TestIf].Abbr ?>
<?cs if:?Days[TestIf].Abbr ?>
 PASS
<?cs else ?>
 ERROR
<?cs /if ?>

array element exists test false
<?cs var:Days[TestIf].foo ?>
<?cs if:?Days[TestIf].foo ?>
 ERROR
<?cs else ?>
 PASS
<?cs /if ?>