changed Scheme code to Elisp code

This commit is contained in:
Phuntsok Drak-pa 2019-08-14 02:55:02 +02:00
parent 14b4ca999e
commit 5471f0aa12
7 changed files with 80 additions and 245 deletions

View File

@ -281,10 +281,10 @@
- au {{{phon(ɔu)}}}
- ey {{{phon(øy)}}}
#+NAME: vow-tree
#+BEGIN_SRC scheme :noweb yes :exports none :eval yes
<<process-tree>>
(define vowels
#+NAME: vow-dot
#+BEGIN_SRC emacs-lisp :noweb yes :exports none :eval yes :cache yes
<<tree-dot>>
(defvar vowels
'("vowels"
("[high]"
("[rnd]"
@ -307,13 +307,13 @@
(tree-to-dot vowels)
#+END_SRC
#+BEGIN_SRC dot :file img/einnlanda-vowel-feature-tree.png :var input=vow-tree :exports results
#+BEGIN_SRC dot :file img/einnlanda-vowel-feature-tree.png :var input=vow-dot :exports results :cache yes
$input
#+END_SRC
#+NAME: arbre:vowels
#+attr_html: :alt Arbre des consonnes de lEinnlandais :align center
#+CAPTION: Arbre des caractéristiques des consonnes de lEinnlandais
#+RESULTS[22f783add838e5efabdd03e0b594c9ea0b2899c6]:
#+RESULTS[e2fa11efdddf12a6e36e8153a0720e5c47b9b93f]:
[[file:img/einnlanda-vowel-feature-tree.png]]
| / | <> | > | > | > | > |

View File

@ -30,44 +30,53 @@
# ### CODE #####################################################################
#+NAME: process-tree
#+BEGIN_SRC scheme :noweb yes :exports none :eval yes :cache yes
;; Original commented source code hosted on Phundrak Labs:
;; https://labs.phundrak.fr/phundrak/features-tree
(define (atom? elem)
(not (pair? elem)))
(define (declare-node node-text node-generation)
(string-append ;; "node"
(number->string node-generation)
#+NAME: tree-dot
#+BEGIN_SRC emacs-lisp :noweb yes :exports none :eval yes :cache yes
(defun declare-node (node-text node-generation)
"Declares a node in the graphviz source code. The nodes identifier will be
~node-generation~, and it will bear the label ~node-text~."
(concat (number-to-string node-generation)
"[label=\""
node-text
"\"];"))
(define (make-link previous-node current-node)
(string-append (number->string previous-node) " -- "
(number->string current-node) ";"))
(defun make-link (previous-node current-node)
"This creates a link in the graphviz source code between the two nodes
bearing ~previous-node~ and ~current-node~ respectively as their node
identifier."
(concat (number-to-string previous-node) " -- "
(number-to-string current-node) ";"))
(define (tree-to-dot-helper tree current-generation previous-generation)
(cond ((null? tree) "")
((atom? (car tree))
(string-append (declare-node (car tree) current-generation)
(defun tree-to-dot-helper (tree current-generation previous-generation)
"Helper to ~tree-to-dot~ that translates an Elisp tree with any number of
children per node to a corresponding graphviz file that can be executed from
dot.
Arguments:
- tree :: tree-to-convert
- current-generation :: Generation number, incremented when changing from a node
to another node from the same generation, multiplied by 10 when going from
a node to one of its children.
- previous-generation :: generation number from previous named node"
(cond
((null tree) "")
((atom (car tree)) ;; '("text" () () ())
(concat (declare-node (car tree) current-generation)
(make-link previous-generation current-generation)
(tree-to-dot-helper (cdr tree)
(+ 1 (* 10 current-generation))
current-generation)))
((list? (car tree))
(string-append (tree-to-dot-helper (car tree)
((listp (car tree)) ;; '(() () ())
(concat (tree-to-dot-helper (car tree) ;; child of current node
current-generation
previous-generation)
(tree-to-dot-helper (cdr tree)
(+ 1 current-generation)
previous-generation)))))
(define (tree-to-dot tree)
(if (null? tree) ""
(string-append
(defun tree-to-dot (tree)
"Returns a graphvizs dot compatible string representing an Elisp tree"
(if (null tree) ""
(concat
"graph{node[shape=plaintext];graph[bgcolor=\"transparent\"];"
(declare-node (car tree) 0)
(tree-to-dot-helper (cdr tree) 1 0)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -193,9 +193,9 @@
caractéristiques montré dans la figure [[arbre:cons]].
#+NAME: cons-tree
#+BEGIN_SRC scheme :noweb yes :exports none :eval yes :cache yes
<<process-tree>>
(define consonants
#+BEGIN_SRC emacs-lisp :noweb yes :exports none :eval yes :cache yes
<<tree-dot>>
(defvar consonants
'("[cons]"
("[son]"
("[dor]"
@ -230,7 +230,7 @@
#+NAME: arbre:cons
#+attr_html: :alt Arbre des consonnes du Ňyqy :align center
#+CAPTION: Arbre des caractéristiques des consonnes du Ňyqy
#+RESULTS[18461730bfe270db4276b62821b66e8688577ccd]:
#+RESULTS[2c0685c9f85f1b06c5092c4e49b56e8546696de2]:
[[file:img/nyqy-consonant-feature-tree.png]]
Ainsi furent choisies ces consonnes, présentées par la table [[table:cons:ipa]].
@ -314,9 +314,9 @@
présenté avec la figure [[arbre:vowels]].
#+NAME: vow-tree
#+BEGIN_SRC scheme :noweb yes :exports none :eval yes :cache yes
<<process-tree>>
(define vowels
#+BEGIN_SRC emacs-lisp :noweb yes :exports none :eval yes :cache yes
<<tree-dot>>
(defvar vowels
'("[vowel]"
("[back]"
("[tense]"
@ -341,8 +341,8 @@
#+NAME: arbre:vowels
#+attr_html: :alt Arbre des consonnes du Ňyqy :align center
#+CAPTION: Arbre des caractéristiques des consonnes du Ňyqy
#+RESULTS:
[[file:img/nyqy_vowel_feature_tree.svg]]
#+RESULTS[3bb7c3cad821b085e1cd5c47ba5df0cd8e20ff38]:
[[file:img/nyqy-vowel-feature-tree.png]]
Grâce à cet arbre furent choisies les voyelles présentées par la table
[[table:vowels:ipa]], et leur translittération est présentée par la table
@ -710,9 +710,9 @@
dernière position.
#+NAME: basic-syntax-tree
#+BEGIN_SRC scheme :noweb yes :exports none :eval yes :cache yes
<<process-tree>>
(define syntax-tree
#+BEGIN_SRC emacs-lisp :noweb yes :exports none :eval yes :cache yes
<<tree-dot>>
(defvar syntax-tree
'("S"
("Obl")
("S'"
@ -742,8 +742,8 @@
#+NAME: arbre:syntaxe:basique
#+attr_html: :alt Arbre de syntaxe basique du Ňyqy
#+CAPTION: Arbre de syntaxe basique du Ňyqy
#+RESULTS:
[[file:img/nyqy_basic_syntax.svg]]
#+RESULTS[f610dcdc0787e77f58af7974f394c881f032f96a]:
[[file:img/nyqy-basic-syntax.png]]
On voit grâce à larbre [[arbre:syntaxe:basique]] que la structure générale dune
phrase démarre avec des éléments divers liés à la clause principale, qui ne se

198
taso.org
View File

@ -11,185 +11,6 @@
#+OPTIONS: auto-id:t
#+TOC: headlines
* Table des matières :TOC_5_gh:noexport:
:PROPERTIES:
:CUSTOM_ID: h-442b7d1d-b6da-4987-a18a-2ef8c37b3ea3
:END:
- [[#avant-propos][Avant-propos]]
- [[#introduction][Introduction]]
- [[#le-nom-de-la-langue][Le nom de la langue]]
- [[#démographie][Démographie]]
- [[#histoire][Histoire]]
- [[#affiliation-générique][Affiliation générique]]
- [[#système-décriture][Système décriture]]
- [[#situation-sociolinguistique][Situation sociolinguistique]]
- [[#multilinguisme-et-contexte-dutilisation][Multilinguisme et contexte dutilisation]]
- [[#viabilité][Viabilité]]
- [[#mots-demprunt][Mots demprunt]]
- [[#dialectes][Dialectes]]
- [[#phonologie][Phonologie]]
- [[#notes-sur-la-transcription-du-tãso][Notes sur la transcription du Tãso]]
- [[#inventaire-phonétique][Inventaire phonétique]]
- [[#consonnes][Consonnes]]
- [[#voyelles][Voyelles]]
- [[#diphtonges][Diphtonges]]
- [[#allophonie][Allophonie]]
- [[#phonotaxes][Phonotaxes]]
- [[#attaque][Attaque]]
- [[#coda][Coda]]
- [[#inter-syllabe][Inter-syllabe]]
- [[#accentuation][Accentuation]]
- [[#accents-régionaux][Accents régionaux]]
- [[#système-décriture-1][Système décriture]]
- [[#orthographe][Orthographe]]
- [[#topologie-morphologique][Topologie morphologique]]
- [[#classes-de-mots][Classes de mots]]
- [[#noms][Noms]]
- [[#nombre][Nombre]]
- [[#genre][Genre]]
- [[#possession][Possession]]
- [[#relations-grammaticales][Relations grammaticales]]
- [[#articles][Articles]]
- [[#types-de-noms][Types de noms]]
- [[#noms-propres][Noms propres]]
- [[#noms-de-masse][Noms de masse]]
- [[#pronoms][Pronoms]]
- [[#personnels][Personnels]]
- [[#relatifs][Relatifs]]
- [[#verbes][Verbes]]
- [[#infinitif][Infinitif]]
- [[#nominalisation][Nominalisation]]
- [[#adjectifs][Adjectifs]]
- [[#adverbes][Adverbes]]
- [[#ordre-des-constituants-basiques][Ordre des constituants basiques]]
- [[#clauses-principales][Clauses principales]]
- [[#phrase-prépositionnelles][Phrase prépositionnelles]]
- [[#phrases-nominales][Phrases nominales]]
- [[#modificateurs][Modificateurs]]
- [[#constructions-génitives][Constructions génitives]]
- [[#clauses-relatives][Clauses relatives]]
- [[#phrases-verbales][Phrases verbales]]
- [[#comparatifs][Comparatifs]]
- [[#résumé][Résumé]]
- [[#prédicats-nominaux][Prédicats nominaux]]
- [[#phrases-existentielles-locationnelles-et-possessives][Phrases existentielles, locationnelles et possessives]]
- [[#expression-des-relations-grammaticales][Expression des relations grammaticales]]
- [[#déclinaison--noms][Déclinaison Noms]]
- [[#déclinaison][Déclinaison]]
- [[#noms-masculins-forts][Noms masculins forts]]
- [[#possession-1][Possession]]
- [[#déclinaison--pronoms][Déclinaison — Pronoms]]
- [[#accord-des-verbes][Accord des verbes]]
- [[#indicatif][Indicatif]]
- [[#perfectif][Perfectif]]
- [[#imperfectif][Imperfectif]]
- [[#impératif][Impératif]]
- [[#jussif][Jussif]]
- [[#participes][Participes]]
- [[#déclinaison-et-accord-des-adjectifs][Déclinaison et accord des adjectifs]]
- [[#nominalisation-1][Nominalisation]]
- [[#temps-aspects-et-modes][Temps, aspects et modes]]
- [[#temps][Temps]]
- [[#aspect][Aspect]]
- [[#modaux-auxiliaires][Modaux auxiliaires]]
- [[#causatif][Causatif]]
- [[#causatif-lexical][Causatif lexical]]
- [[#causatif-analytique][Causatif analytique]]
- [[#passif][Passif]]
- [[#réflexif][Réflexif]]
- [[#réciproque][Réciproque]]
- [[#questions][Questions]]
- [[#question-absolue-ouinon][Question absolue (oui/non)]]
- [[#question-relative][Question relative]]
- [[#impératif-1][Impératif]]
- [[#négation][Négation]]
- [[#combination-de-clauses][Combination de clauses]]
- [[#clauses-relatives-1][Clauses relatives]]
- [[#verbes-en-série][Verbes en série]]
- [[#clauses-de-complément][Clauses de complément]]
- [[#compléments-de-stems-basiques][Compléments de stems basiques]]
- [[#compléments-autres][Compléments autres]]
- [[#clauses-adverbiales][Clauses adverbiales]]
- [[#coordination][Coordination]]
- [[#structures-marquées-pragmatiquement][Structures marquées pragmatiquement]]
- [[#nombres][Nombres]]
- [[#glossaire][Glossaire]]
- [[#actions-physiques][Actions physiques]]
- [[#amour][Amour]]
- [[#animaux][Animaux]]
- [[#art][Art]]
- [[#écriture][Écriture]]
- [[#visuel][Visuel]]
- [[#audio][Audio]]
- [[#astronomie][Astronomie]]
- [[#bâtiments][Bâtiments]]
- [[#la-ville][La ville]]
- [[#les-types-de-bâtiments][Les types de bâtiments]]
- [[#commerce][Commerce]]
- [[#conflits][Conflits]]
- [[#conteneurs][Conteneurs]]
- [[#corps][Corps]]
- [[#couleurs][Couleurs]]
- [[#dimensions][Dimensions]]
- [[#distance][Distance]]
- [[#taille][Taille]]
- [[#quantifieurs][Quantifieurs]]
- [[#direction][Direction]]
- [[#eau][Eau]]
- [[#effort][Effort]]
- [[#éléments][Éléments]]
- [[#émotions][Émotions]]
- [[#évaluation][Évaluation]]
- [[#événements][Événements]]
- [[#existence][Existence]]
- [[#forme][Forme]]
- [[#gouvernement][Gouvernement]]
- [[#grammaire][Grammaire]]
- [[#articles-définis][Articles définis]]
- [[#déterminants-démonstratifs][Déterminants démonstratifs]]
- [[#outils-interrogatifs][Outils interrogatifs]]
- [[#conjonctions][Conjonctions]]
- [[#prépositions][Prépositions]]
- [[#pronoms-1][Pronoms]]
- [[#guerre][Guerre]]
- [[#légal][Légal]]
- [[#lieux][Lieux]]
- [[#villes][Villes]]
- [[#lumière][Lumière]]
- [[#mental][Mental]]
- [[#mesures][Mesures]]
- [[#métaux][Métaux]]
- [[#mouvements][Mouvements]]
- [[#nature][Nature]]
- [[#nombres-1][Nombres]]
- [[#nombres-cardinaux][Nombres cardinaux]]
- [[#nourriture][Nourriture]]
- [[#outils][Outils]]
- [[#parenté][Parenté]]
- [[#famille][Famille]]
- [[#parole][Parole]]
- [[#péchés][Péchés]]
- [[#peuples][Peuples]]
- [[#physique][Physique]]
- [[#possession-2][Possession]]
- [[#religion][Religion]]
- [[#savoir][Savoir]]
- [[#sensations][Sensations]]
- [[#sexe][Sexe]]
- [[#société][Société]]
- [[#relations-sociales][Relations sociales]]
- [[#substances][Substances]]
- [[#temps-1][Temps]]
- [[#jours-de-la-semaine][Jours de la semaine]]
- [[#saisons][Saisons]]
- [[#travail][Travail]]
- [[#végétaux][Végétaux]]
- [[#fruits][Fruits]]
- [[#vêtements][Vêtements]]
- [[#vie-et-santé][Vie et santé]]
- [[#à-trier][À trier]]
- [[#footnotes][Footnotes]]
* Avant-propos
:PROPERTIES:
:CUSTOM_ID: h-41a62215-44fc-490f-89f3-5b9cccf02550
@ -256,9 +77,9 @@
:END:
#+name: cons-tree
#+BEGIN_SRC scheme :noweb yes :exports none :eval yes :cache yes
<<process-tree>>
(define consonants
#+BEGIN_SRC emacs-lisp :noweb yes :exports none :eval yes :cache yes
<<dot>>
(defvar consonants
'("consonant"
("[son]"
("[cor]"
@ -317,7 +138,7 @@
#+NAME: arbre:cons
#+attr_html: :alt Arbre des consonnes du Tãso :align center
#+CAPTION: Arbre des caractéristiques des consonnes du Tãso
#+RESULTS[dd8dc3a01a5754a0bd6ea8faed1ed331439b0a64]:
#+RESULTS[45f2ae280d561316e5c20b64cc51e149c00af1f4]:
[[file:img/taso-consonant-feature-tree.png]]
| <r10> | <c5> | <c5> | <c5> | <c5> | <c5> | <c5> |
@ -339,9 +160,9 @@
:END:
#+name: vowel-tree
#+BEGIN_SRC scheme :noweb yes :exports none :eval yes :cache yes
<<process-tree>>
(define vowels
#+BEGIN_SRC emacs-lisp :noweb yes :exports none :eval yes :cache yes
<<tree-dot>>
(defvar vowels
'("vowel"
("[high]"
("[frnt]"
@ -375,6 +196,11 @@
#+BEGIN_SRC dot :file img/taso-vowel-feature-tree.png :var input=vowel-tree :exports results :eval yes :cache yes
$input
#+END_SRC
#+NAME: arbre:cons
#+attr_html: :alt Arbre des voyelles du Tãso :align center
#+CAPTION: Arbre des caractéristiques des voyelles du Tãso
#+RESULTS[924b5a5845cce83ae80354cdb8128a3288904e2b]:
[[file:img/taso-vowel-feature-tree.png]]
| <r> | <c5> | <c5> | <c5> | <c5> | <c5> |
| | {{{v(antérieur)}}} | {{{v(quasi-antérieur)}}} | {{{v(central)}}} | {{{v(quasi-postérieur)}}} | {{{v(postérieur)}}} |