fork download
  1. \ ========================================
  2. \ char - Solo in MODALITÀ INTERPRETATIVA
  3. \ ========================================
  4.  
  5. \ Esempi fuori dalle definizioni:
  6. char A . \ Stampa: 65
  7. char X emit \ Stampa: X
  8. char * emit \ Stampa: *
  9.  
  10. \ ========================================
  11. \ [char] - Solo DENTRO LE DEFINIZIONI
  12. \ ========================================
  13.  
  14. \ Esempi dentro le definizioni:
  15. : stampa-A [char] A emit ;
  16. stampa-A \ Stampa: A
  17.  
  18. : stampa-B [char] B emit ;
  19. stampa-B \ Stampa: B
  20.  
  21. : stampa-X [char] X emit ;
  22. stampa-X \ Stampa: X
  23.  
  24. \ Confronto caratteri
  25. : e-una-A? ( c -- flag )
  26. [char] A = ;
  27.  
  28. 65 e-una-A? . \ Stampa: -1 (vero)
  29.  
  30. \ Spazio
  31. : e-uno-spazio? ( c -- flag )
  32. [char] = ; \ Nota: spazio dopo [char]
  33.  
  34. 32 e-uno-spazio? . \ Stampa: -1
  35.  
  36. \ Menu
  37. : processa-scelta ( c -- )
  38. dup [char] Q = if ." Uscita" drop exit then
  39. dup [char] S = if ." Salva" drop exit then
  40. drop ." Non valida" ;
  41.  
  42. \ Chiamata in modalità interpretativa:
  43. char Q processa-scelta \ Stampa: Uscita
  44.  
  45. \ Delimitatori
  46. : delimitatori
  47. [char] , emit space
  48. [char] ; emit space
  49. [char] : emit ;
  50.  
  51. delimitatori \ Stampa: , ; :
  52.  
  53. \ Simboli
  54. : stampa-simboli
  55. [char] * emit space
  56. [char] + emit ;
  57.  
  58. stampa-simboli \ Stampa: * +
  59.  
  60.  
  61.  
  62.  
  63. \ Definizione con [char]
  64. : controlla-virgola ( c -- flag )
  65. [char] , = ;
  66.  
  67. \ Uso in modalità interpretativa con char
  68. char , controlla-virgola . \ Stampa: -1 (vero)
  69. char ; controlla-virgola . \ Stampa: 0 (falso)
  70.  
  71. \ Altro esempio
  72. : emetti-asterisco
  73. [char] * emit ;
  74.  
  75. emetti-asterisco \ Stampa: *
  76.  
Success #stdin #stdout 0.01s 5308KB
stdin
Standard input is empty
stdout
65 X*ABX-1 61 Uscita, ; :* +-1 0 *