Exemples
No gods, no masters, juste du code: si ça compile c'est un exemple, sinon c'est un bug avec de l'attitude.
Bases (basics/)
Exemples fondamentaux :
01_born_to_segfault.cat- Premier programme, debug et affichage02_loops.cat- Boucles for et while03_statement_separators.cat- Newlines, semicolons et séparateurs mixtes04_repl_multiline_demo.txt- Utilisation de la REPL en mode multiline05_fstrings.cat- F-strings: interpolation, format specs, conversion et debug
Fonctions (functions/)
Fonctions, lambdas et closures :
01_functions.cat- Définition de fonctions, paramètres, defaults02_lambdas.cat- Fonctions anonymes, lambdas inline03_closures_and_higher_order.cat- Closures, fonctions de fonctions, composition04_tail_recursion.cat- Récursion terminale et transformation automatique en boucles
Pattern Matching (pattern-matching/)
Matching et destructuration :
01_pattern_matching.cat- match/case, patterns littéraux, variables, guards, OR patterns
Flux de Contrôle (control-flow/)
Structures de contrôle avancées :
01_break_example.cat- Sortie anticipée de boucle02_continue_example.cat- Passage à l'itération suivante03_break_continue_combined.cat- Combinaison des deux
Avancé (advanced/)
Fonctionnalités avancées :
01_advanced_techniques.cat- Techniques avancées combinées02_blocks_and_expressions.cat- Blocs comme expressions03_data_structures.cat- Manipulation de structures complexes04_literals_and_variadic.cat- Littéraux et fonctions variadiques05_pragma_features.cat- Pragmas et directives06_fstrings.cat- Formatage de chaînes07_binary_search.cat- Algorithme de recherche binaire08_turing_completeness.cat- Démonstration de Turing-complétude09_assignment_syntax.cat- Affectation d'attributs et par index10_nd_recursion.cat- Récursion N-dimensionnelle11_pickle_example.py- Sérialisation pickle (AST, Scope, lambdas, closures)12_structs.cat- Structures nommées (déclaration, instanciation, mutation, imbrication)13_traits.cat- Traits, composition et résolution de conflits
Broadcasting (broadcast/)
Opérations vectorielles sur collections :
01_scalar_broadcasting.cat- Broadcasting sur scalaire02_basic_broadcasting.cat- SyntaxeA.[op M], bases03_math_operations.cat- Opérations mathématiques vectorielles04_comparisons.cat- Comparaisons et filtrage05_boolean_logic.cat- Logique booléenne distribuée06_nested_structures.cat- Broadcasting sur structures imbriquées07_cas_illustratifs.cat- Cas d'usage illustratifsbench_broadcast.py- Benchmarks de performance
Chargement de Modules (module-loading/)
Intégration avec Python :
index.md- Mécanismes de base01_demo.cat- Mode namespace par défaut02_demo_with_as.cat- Namespace personnalisé03_host_module_example.py- Module Python exemple04_app_script.cat- Script utilisant l'API05_simple_extension.py- Extension simple06_custom_functions.py- Fonctions personnalisées07_app_api.py- API d'application simulée08_aesgcm.cat- AES-GCM avec propagation d'erreur Python
Intégration DSL (embedding/)
Catnip comme moteur DSL embarqué dans une application Python :
01_dataframe_dsl.py- DSL pour DataFrames pandas02_config_dsl.py- Validation de configuration03_etl_pipeline.py- Pipeline ETL déclaratif04_rule_engine.py- Moteur de règles métier05_report_builder.py- Génération de rapports06_workflow_dsl.py- Orchestration de workflows07_flask_sandbox.py- Sandbox Flask sécurisé08_jupyter_integration.py- Magic commands Jupyter09_streamlit_app.py- Dashboard Streamlit interactif
Standalone (standalone/)
Scripts Catnip exécutables en ligne de commande :
01_calculate.cat- Calculatrice et formules02_filter_data.cat- Filtrage et transformations03_transform_csv.cat- Transformation de données tabulaires04_config_validator.cat- Validation de configuration05_data_report.cat- Rapport de données
Control Flow Graph (cfg/)
Analyse et optimisation du flux de contrôle :
01_cfg_basic.md- Construction de CFG, blocs basiques, edges02_cfg_analysis.md- Dominance, détection de boucles03_cfg_optimization.md- Optimisations (dead code, fusion, branches)04_cfg_reconstruction.md- Reconstruction de code structuré depuis CFG
Outils (tools/)
Utilitaires de développement :
extract_grammar_demo.py- Extraction de la grammaire Tree-sitterjson_ir_analysis.py- Analyse programmatique de l'IR via sérialisation JSON
Exécuter les Exemples
# Exemple simple
catnip docs/examples/basics/01_born_to_segfault.cat
# Avec module Python (utiliser import() dans le script pour les fichiers locaux)
catnip docs/examples/module-loading/02_demo_with_as.cat
# Mode verbeux
catnip -v docs/examples/functions/01_functions.cat
# REPL pour expérimenter
catnip