Section courante

A propos

Section administrative du site

 Langage  Elément  Tutoriel  Aide 
ABAP/4
Ada
Assembleur
Assembly & bytecode
ASP (Active Server Pages)
Basic
C
C++
C# (C Sharp)
Cobol
ColdFusion
Fortran
HTML
Java
JavaScript
LISP
Logo
LotusScript
Oberon
Pascal
Perl
PHP
PL/1
Prolog
Python
Rebol
REXX
Ruby
Rust
SAS
NoSQL
SQL
Swift
X++ (Axapta)
GNAT
SMALLAda
VHDL
Assembleur 370
Assembleur 1802
Assembleur 4004
Assembleur 6502
Assembleur 6800
Assembleur 68000
Assembleur 8080 et 8085
Assembleur 8089
Assembleur 80x86
Assembleur AGC4
Assembleur ARM
Assembleur DPS 8000
Assembleur i860
Assembleur Itanium
Assembleur MIPS
Assembleur PDP-11
Assembleur PowerPC
Assembleur RISC-V
Assembleur SPARC
Assembleur SuperH
Assembleur UNIVAC I
Assembleur VAX
Assembleur Z80
Assembleur Z8000
Assembleur z/Architecture
ASSEMBLER/MONITOR 64
Micol Assembler
GFA Assembler
A86
MASM (Macro Assembler)
TASM (Turbo Assembler)
CIL
Jasmin
LLVM
MSIL
Parrot
P-Code (PCode)
SWEET16
G-Pascal
ASP 1.0
ASP 2.0
ASP 3.0
ASP.NET
ASP.NET Core
ABasiC (Amiga)
Adam SmartBASIC
Altair BASIC
AmigaBASIC (Amiga)
AMOS Basic (Amiga)
Atari Basic (Atari 400, 600 XL, 800, 800XL)
Basic Apple II (Integer BASIC/APPLESOFT)
Basic Commodore 64 (CBM-BASIC)
Basic Commodore 128 (BASIC 7.0)
Basic Commodore VIC-20 (CBM-BASIC 2.0)
Basic Coco 1 (Color Basic)
Basic Coco 2 (Extended Color Basic)
Basic Coco 3 (Extended Color Basic 2.0)
BASICA (PC DOS)
Basic Pro
BBC BASIC
Blitz BASIC (Amiga)
DarkBASIC
Dartmouth BASIC
GFA-Basic (Atari ST/Amiga)
GWBASIC (MS-DOS)
Liberty BASIC
Locomotive BASIC (Amstrad CPC)
MSX-Basic
Omikron Basic (Atari ST)
Oric Extended Basic
Power Basic
Quick Basic/QBasic (MS-DOS)
Sinclair BASIC (ZX80, ZX81, ZX Spectrum)
ST BASIC (Atari ST)
Turbo Basic
Vintage BASIC
VBScript
Visual Basic (VB)
Visual Basic .NET (VB .NET)
Visual Basic pour DOS
Yabasic
BeckerBASIC
SIMONS' BASIC
Basic09 d'OS-9
Disk Extended Color Basic
Basic09 d'OS-9
Disk Extended Color Basic
Access
Excel
Visual Basic pour Windows
Visual Basic .NET pour Windows
C Shell Unix (csh)
C pour Amiga
C pour Atari ST
C pour DOS
C pour Falcon030
C pour GEMDOS (Atari ST)
C pour Linux
C pour PowerTV OS
C pour OS/2
C pour Unix
C pour Windows
Aztec C
CoCo-C
GNU C
HiSoft C
IBM C/2
Introl-C
Lattice C
Microsoft C
MinGW C
MSX-C
Open Watcom C
OS-9 C Compiler
Pure C
Quick C
Turbo C
HiSoft C for Atari ST
HiSoft C for CP/M (Amstrad CPC)
C++ pour OS/2
C++ pour Windows
Borland C++
C++Builder
IBM VisualAge C++
Intel C++
MinGW C++
Open Watcom C++
Symantec C++
Turbo C++
Visual C++
Visual C++ .NET
Watcom C++
Zortech C++
C# (C Sharp) pour Windows
Apple III Cobol
Microsoft Cobol
BlueDragon
Lucee
OpenBD
Railo
Smith Project
Microsoft Fortran
WATFOR-77
CSS
FBML
Open Graph
SVG
XML
XSL/XSLT
LESS
SASS
GCJ (GNU)
JSP
Jython
Visual J++
Node.js
TypeScript
AutoLISP
ACSLogo
LotusScript pour Windows
Amiga Oberon
Oberon .NET
Apple Pascal
Delphi/Kylix/Lazarus
Free Pascal
GNU Pascal
HighSpeed Pascal
IBM Personal Computer Pascal
Lisa Pascal
Maxon Pascal
MPW Pascal
OS-9 Pascal
OSS Personal Pascal
Pascal-86
Pascal du Cray Research
Pascal/VS
Pascal-XT
PURE Pascal
QuickPascal
RemObjets Chrome
Sun Pascal
THINK Pascal
Tiny Pascal (TRS-80)
Turbo Pascal
UCSD Pascal
VAX Pascal
Virtual Pascal
Turbo Pascal for CP/M-80
Turbo Pascal for DOS
Turbo Pascal for Macintosh
Turbo Pascal for Windows
CodeIgniter (Cadre d'application)
Drupal (Projet)
Joomla! (Projet)
Phalanger (PHP .NET)
phpBB (Projet)
Smarty (balise)
Twig (balise)
Symfony (Cadre d'application)
WordPress (Projet)
Zend (Cadre d'application)
PL360
PL/M-80
PL/M-86
Turbo Prolog
CPython
IronPython
Jython
PyPy
AREXX
Regina REXX
JMP
Btrieve
Cassandra
Clipper
CouchDB
dBASE
Hbase
Hypertable
MongoDB
Redis
Access
BigQuery
DB2
H2
Interbase
MySQL
Oracle
PostgreSQL
SAP HANA
SQL Server
Sybase
U-SQL
Introduction
Configuration de l'environnement de développement
Fabriquer le LibSass
Profilage de LibSass
Utilisation de l'API
LibSass et Unicode
Composantes internes de SourceMap
Allocateur de mémoire personnalisé
Implémentation du pointeur intelligent LibSass
Les plugiciels
Compilation avec des fichiers makefiles
Compilation avec autotools
Compilation de LibSass avec MinGW (makefiles)
Compilation de LibSass avec Visual Studio
Compilation sur Mac OS X
Création d'une bibliothèque système partagée
Ebuilds pour Gentoo Linux
Contexte Sass
Valeur Sass
Fonction Sass
Importateur Sass
Exemple de code pour le contexte Sass
Contexte Sass interne
Exemple de code pour la valeur Sass
Valeur Sass interne
Exemple de code pour la fonction Sass
Fonction Sass interne
Exemple de code pour l'importateur Sass
Importateur Sass interne
Préface
Notes légales
Dictionnaire
Recherche

Valeur Sass

Les Sass_Values permettent de transmettre des valeurs et leurs types entre l'implémenteur et LibSass. Sass gère différents types de valeurs (dont les tableaux imbriqués et les tables de hachage). Si vous implémentez une liaison vers un autre langage de programmation, vous devez trouver un moyen de convertir les Sass_Values ??entre le langage cible et le langage C. Les Sass_Values ??ne sont actuellement utilisées que par des fonctions personnalisées, mais il devrait également être possible de les utiliser sans contexte de compilation.

Utilisation de base

  1. #include "sass/values.h"

Les valeurs de base :

  1. // Type pour les valeurs Sass
  2. enum Sass_Tag {
  3.   SASS_BOOLEAN,
  4.   SASS_NUMBER,
  5.   SASS_COLOR,
  6.   SASS_STRING,
  7.   SASS_LIST,
  8.   SASS_MAP,
  9.   SASS_NULL,
  10.   SASS_ERROR,
  11.   SASS_WARNING
  12. };
  13.  
  14. // Balises pour désigner les séparateurs de liste Sass
  15. enum Sass_Separator {
  16.   SASS_COMMA,
  17.   SASS_SPACE,
  18.   // utilisé uniquement en interne pour représenter une table de hachage avant évaluation
  19.   // sinon nous serions trop tôt pour vérifier les clefs en double
  20.   SASS_HASH
  21. };
  22.  
  23. // Opérateurs de valeur
  24. enum Sass_OP {
  25.   AND, OR,                   // connecteurs logiques
  26.   EQ, NEQ, GT, GTE, LT, LTE, // relations arithmétiques
  27.   ADD, SUB, MUL, DIV, MOD,   // fonctions arithmétiques
  28.   NUM_OPS                    // nous savons donc quelle taille donner à la table d'opération
  29. };

API de valeur Sass

  1. // Déclaration anticipée
  2. union Sass_Value;
  3.  
  4. // Fonctions de création pour tous les types de valeur
  5. union Sass_Value* sass_make_null    (void);
  6. union Sass_Value* sass_make_boolean (bool val);
  7. union Sass_Value* sass_make_string  (const char* val);
  8. union Sass_Value* sass_make_qstring (const char* val);
  9. union Sass_Value* sass_make_number  (double val, const char* unit);
  10. union Sass_Value* sass_make_color   (double r, double g, double b, double a);
  11. union Sass_Value* sass_make_list    (size_t len, enum Sass_Separator sep, bool is_bracketed);
  12. union Sass_Value* sass_make_map     (size_t len);
  13. union Sass_Value* sass_make_error   (const char* msg);
  14. union Sass_Value* sass_make_warning (const char* msg);
  15.  
  16. // Fonction destructrice générique pour tous les types
  17. // Libère la mémoire de toutes les valeurs Sass_Values associées
  18. // Cela signifie que nous supprimerons récursivement les listes et les cartes
  19. void sass_delete_value (union Sass_Value* val);
  20.  
  21. // Créer une copie clonée en profondeur de la valeur sass donnée
  22. union Sass_Value* sass_clone_value (const union Sass_Value* val);
  23.  
  24. // Stringifiez une Sass_Values et renvoyez également le résultat sous forme de Sass_Value (de type STRING)
  25. union Sass_Value* sass_value_stringify (const union Sass_Value* a, bool compressed, int precision);
  26.  
  27. // Exécutez une opération pour deux Sass_Values et renvoyez également le résultat sous forme de Sass_Value
  28. union Sass_Value* sass_value_op (enum Sass_OP op, const union Sass_Value* a, const union Sass_Value* b);
  29.  
  30. // Renvoie la balise sass pour une valeur sass générique
  31. // Une vérification est nécessaire avant d'accéder à des valeurs spécifiques !
  32. enum Sass_Tag sass_value_get_tag (const union Sass_Value* v);
  33.  
  34. // Vérifier que la valeur est d'un type spécifique
  35. // Peut également être utilisé avant d'accéder aux propriétés !
  36. bool sass_value_is_null (const union Sass_Value* v);
  37. bool sass_value_is_number (const union Sass_Value* v);
  38. bool sass_value_is_string (const union Sass_Value* v);
  39. bool sass_value_is_boolean (const union Sass_Value* v);
  40. bool sass_value_is_color (const union Sass_Value* v);
  41. bool sass_value_is_list (const union Sass_Value* v);
  42. bool sass_value_is_map (const union Sass_Value* v);
  43. bool sass_value_is_error (const union Sass_Value* v);
  44. bool sass_value_is_warning (const union Sass_Value* v);
  45.  
  46. // Getters et setters pour Sass_Number
  47. double sass_number_get_value (const union Sass_Value* v);
  48. void sass_number_set_value (union Sass_Value* v, double value);
  49. const char* sass_number_get_unit (const union Sass_Value* v);
  50. void sass_number_set_unit (union Sass_Value* v, char* unit);
  51.  
  52. // Getters et setters pour Sass_String
  53. const char* sass_string_get_value (const union Sass_Value* v);
  54. void sass_string_set_value (union Sass_Value* v, char* value);
  55. bool sass_string_is_quoted(const union Sass_Value* v);
  56. void sass_string_set_quoted(union Sass_Value* v, bool quoted);
  57.  
  58. // Getters et setters pour Sass_Boolean
  59. bool sass_boolean_get_value (const union Sass_Value* v);
  60. void sass_boolean_set_value (union Sass_Value* v, bool value);
  61.  
  62. // Getters et setters pour Sass_Color
  63. double sass_color_get_r (const union Sass_Value* v);
  64. void sass_color_set_r (union Sass_Value* v, double r);
  65. double sass_color_get_g (const union Sass_Value* v);
  66. void sass_color_set_g (union Sass_Value* v, double g);
  67. double sass_color_get_b (const union Sass_Value* v);
  68. void sass_color_set_b (union Sass_Value* v, double b);
  69. double sass_color_get_a (const union Sass_Value* v);
  70. void sass_color_set_a (union Sass_Value* v, double a);
  71.  
  72. // Getter pour le nombre d'éléments dans la liste
  73. size_t sass_list_get_length (const union Sass_Value* v);
  74. // Getters et setters pour Sass_List
  75. enum Sass_Separator sass_list_get_separator (const union Sass_Value* v);
  76. void sass_list_set_separator (union Sass_Value* v, enum Sass_Separator value);
  77. bool sass_list_get_is_bracketed (const union Sass_Value* v);
  78. void sass_list_set_is_bracketed (union Sass_Value* v, bool value);
  79. // Getters et setters pour les valeurs Sass_List
  80. union Sass_Value* sass_list_get_value (const union Sass_Value* v, size_t i);
  81. void sass_list_set_value (union Sass_Value* v, size_t i, union Sass_Value* value);
  82.  
  83. // Getter pour le nombre d'éléments dans la carte
  84. size_t sass_map_get_length (const union Sass_Value* v);
  85. // Getters et setters pour les clés et valeurs Sass_Map
  86. union Sass_Value* sass_map_get_key (const union Sass_Value* v, size_t i);
  87. void sass_map_set_key (union Sass_Value* v, size_t i, union Sass_Value*);
  88. union Sass_Value* sass_map_get_value (const union Sass_Value* v, size_t i);
  89. void sass_map_set_value (union Sass_Value* v, size_t i, union Sass_Value*);
  90.  
  91. // Getters et setters pour Sass_Error
  92. char* sass_error_get_message (const union Sass_Value* v);
  93. void sass_error_set_message (union Sass_Value* v, char* msg);
  94.  
  95. // Getters et setters pour Sass_Warning
  96. char* sass_warning_get_message (const union Sass_Value* v);
  97. void sass_warning_set_message (union Sass_Value* v, char* msg);

Autres liens



PARTAGER CETTE PAGE SUR
Dernière mise à jour : Mardi, le 8 octobre 2024