?login_element?

Subversion Repositories NedoOS

Rev

Rev 126 | Blame | Compare with Previous | Last modification | View Log | Download

  1. ;; use options from dir_ifdef.options: "-DextDef1 -DextDef2=X" to assemble this
  2.  
  3. ;; This must generate syntax errors
  4.     IFDEF
  5.     IFNDEF
  6.  
  7. ;; Rest of code must compile without errors
  8.  
  9.     DEFINE defined
  10.  
  11.     IFDEF undefined
  12.     skip
  13.     ELSE
  14.     halt
  15.     ENDIF
  16.  
  17.     IFNDEF undefined
  18.     halt
  19.     ELSE
  20.     skip
  21.     ENDIF
  22.  
  23.     IFDEF defined
  24.     halt
  25.     ELSE
  26.     skip
  27.     ENDIF
  28.  
  29.     IFNDEF defined
  30.     skip
  31.     ELSE
  32.     halt
  33.     ENDIF
  34.  
  35. ;; check the externally defined ones from command line: -DextDef1 -DextDef2=X
  36.  
  37.     IFDEF extDef1
  38.     halt
  39.     ELSE
  40.     skip
  41.     ENDIF
  42.  
  43.     IFNDEF extDef1
  44.     skip
  45.     ELSE
  46.     halt
  47.     ENDIF
  48.  
  49.     IFDEF extDef2
  50.     halt
  51.     ELSE
  52.     skip
  53.     ENDIF
  54.  
  55.     IFNDEF extDef2
  56.     skip
  57.     ELSE
  58.     halt
  59.     ENDIF
  60.  
  61. ;; check nesting
  62.  
  63.     IFDEF defined   ; true on top level
  64.  
  65.         IFDEF extDef1
  66.         halt
  67.         ELSE
  68.         skip
  69.         ENDIF
  70.  
  71.         IFNDEF extDef1
  72.         skip
  73.         ELSE
  74.         halt
  75.         ENDIF
  76.  
  77.     ELSE    ; false on top level
  78.  
  79.         IFDEF extDef1
  80.         almost halt
  81.         ELSE
  82.         skip
  83.         ENDIF
  84.  
  85.         IFNDEF extDef1
  86.         skip
  87.         ELSE
  88.         almost halt
  89.         ENDIF
  90.  
  91.     ENDIF
  92.  
  93.     IFNDEF defined  ; false on top level
  94.  
  95.         IFDEF extDef1
  96.         almost halt
  97.         ELSE
  98.         skip
  99.         ENDIF
  100.  
  101.         IFNDEF extDef1
  102.         skip
  103.         ELSE
  104.         almost halt
  105.         ENDIF
  106.  
  107.     ELSE    ; true on top level
  108.  
  109.         IFDEF extDef1
  110.         halt
  111.         ELSE
  112.         skip
  113.         ENDIF
  114.  
  115.         IFNDEF extDef1
  116.         skip
  117.         ELSE
  118.         halt
  119.         ENDIF
  120.  
  121.     ENDIF
  122.