[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/Microalg/microalg.github.io/master/microalg_export_python.l [Back]  [Original]

(de Litteral (content)
  (cond
    ((num? content) content)
    ((str? content) (pack "\"" content "\""))
    (T "Littral de type inconnu.")
  ))
(de Variable inputs
  (let (nom_var (car inputs))
    (if nom_var nom_var "")
  )
)
(de indent (!instr)
  (let (!lines_with_final_NIL (mapcar pack (split (chop !instr) "^J"))
        !lines (reverse (cdr (reverse !lines_with_final_NIL))))
       (mapcar (list '(!line)
                     (list 'pack "    " '!line "^J")) !lines)
  )
)

(de + @ (pack "(" (glue " + " (rest)) ")"))
(de - (A B) (pack "(" A "-" B ")"))
(de * @ (pack "(" (glue " * " (rest)) ")"))
(de / (A B) (pack "(" A "/" B ")"))
(de % (A B) (pack "(" A "%" B ")"))
(de ^ (A B) (pack "(" A "**" B ")"))

(de !!! (comz) (pack "# " (cdr (reverse (cdr (reverse (chop comz))))) "^J"))
(de Afficher (obj) (pack "print(" obj ")^J"))
(de Declarer !arg_lst
  (let (!splitted (split !arg_lst 'De_type)
        !vars (mapcar 'cadr (car !splitted))  # var name is in (Variable ...)
        !type (cadr (caadr !splitted)))  # type is in (Litteral ...)
        (pack "# " (glue ", " !vars) " sont des variables^J")
  )
)
(setq Dclarer 'Declarer)
(de Concatener @ (glue " + " (rest)))
(setq Concatner 'Concatener)
(de Affecter_a !arg_lst
  (let (!var (cadr (car !arg_lst))  # var name is in (Variable ...)
        !val (eval (cadr !arg_lst)))
       (pack !var " = " !val "^J")))
(setq Affecter_ 'Affecter_a)
(de Entier@ (A B) (pack "random.randint(" A ", " B ")"))
(setq Vrai "True")
(setq Faux "False")
(de Si arg_lst (let (condition (car arg_lst)
                     kw_alors  (cadr arg_lst)
                     splitted  (split (cddr arg_lst) 'Sinon)
                     bloc_vrai (car splitted)
                     bloc_faux (cadr splitted))
                    (pack
                      "if " (eval condition) ":^J"
                      (mapcar 'eval bloc_vrai)
                      (if bloc_faux (pack "else:^J" (mapcar 'eval bloc_faux)))
                    )
                )
)
(de Non (bool) (pack "not (" bool ")"))
(de Et !arg_lst (pack "(" (glue " and " (mapcar 'eval !arg_lst)) ")"))
(de Ou !arg_lst (pack "(" (glue " or "  (mapcar 'eval !arg_lst)) ")"))
(de Tant_que arg_lst (let (!cond (car arg_lst)
                           !mot-clef (cadr arg_lst)
                           !corps (cddr arg_lst))
                          (pack
                            "while " (eval !cond) ":^J"
                            (mapcar 'eval !corps)
                          )
                     )
)
(de Faire arg_lst (let (!splitted (split arg_lst 'Tant_que)
                        !corps (car !splitted)
                        !cond (caadr !splitted))
                       (pack
                         "while True:^J"
                         (mapcar 'eval !corps)
                         "    if not (" (eval !cond) "):^J"
                         "        break^J"
                       )
                  )
)
(de Repeter arg_lst (let (nb (eval (car arg_lst))
                          prg (cddr arg_lst))
                         (pack "for _ in range(" nb "):^J"
                               (mapcar 'eval prg)
                         )
                    )
)
(setq Rpter 'Repeter)
(de =  (A B) (pack "(" A " == " B ")"))
(de <  (A B) (pack "(" A " < "  B ")"))
(de   (A B) (pack "(" A " > "  B ")"))
(de >= (A B) (pack "(" A " >= " B ")"))
(de =/ (A B) (pack "(" A " != " B ")"))

(de Liste @ (pack "[" (glue ", " (rest)) "]"))

(de 1000Cosinus (angle) (pack "math.cos(" angle "/180*math.pi)"))
(de 1000Sinus   (angle) (pack "math.sin(" angle "/180*math.pi)"))

(de Longueur (A) (pack "len(" A ")"))
(de Nieme (obj idx) (pack obj "[" idx "]"))
(de Millisecondes () "(time.time()*1000.0)")

(de Demander () "input()")
(de Demander_un_nombre () "float(input())")
(de Type (A) (pack "type(" A ")"))

(de Tete (obj) (pack obj "[0]"))
(de Queue (obj) (pack obj "[1:]"))
(de Ajouter_a (obj val) (pack obj ".append(" val ")^J"))
(de Retirer_de (obj val) (pack obj ".pop()^J"))
# En_position
(de Nieme@ (obj) (pack "random.choice(" obj ")"))
(de Texte (obj) (pack "str(" obj ")"))
(de Nombre (obj) (pack "float(" obj ")"))
(de ... () " (...) ")

(de !no_export (cmd)
  (pack "-- La commande " cmd " ne peut tre exporte. --^J"))

(de Initialiser@ () (!no_export "Initialiser@"))
(de Definir () (!no_export "Definir"))
(de Dfinir () (!no_export "Dfinir"))
(de Retourner () (!no_export "Retourner"))
(de Exemples_de () (!no_export "Exemples_de"))
(de Tester () (!no_export "Tester"))
(de ? () (!no_export "?"))
# Rien
# Alors Sinon

(de AV () (!no_export "AV"))
(de BC () (!no_export "BC"))
(de LC () (!no_export "LC"))
(de TD () (!no_export "TD"))
(de TG () (!no_export "TG"))
(de Cercle () (!no_export "Cercle"))
(de Contour () (!no_export "Contour"))
(de Ellipse () (!no_export "Ellipse"))
(de Epaisseur () (!no_export "Epaisseur"))
(de RAZ () (!no_export "RAZ"))
(de Rectangle () (!no_export "Rectangle"))
(de Remplissage () (!no_export "Remplissage"))
(de Repere () (!no_export "Repere"))
(de Segment () (!no_export "Segment"))
(de Triangle () (!no_export "Triangle"))

Web Proxy Viewer  |  New URL  |  Original Page