Ho bisogno di un sistema per creare sottoclassi Python in modo semplice, e stavo pensando di usare un linguaggio di configurazione (personalizzato) simile a json
, xml
, ecc.
Ecco la struttura iniziale che ho pensato (un file = una sottoclasse, i file sono in una cartella da cui vengono letti automaticamente), che è fondamentalmente solo un semplice linguaggio di configurazione, con i corpi delle funzioni Python come gestori di eventi:
name: Warrior
description: Excels at close combat
Item:
name: Shield
description: Block 10% of incoming damage, but move 10% slower
Event defend:
# Everything after "event <event_name>" line
# is parsed as normal python until unindentation
event_args['damage'] *= 0.9
Event spawn:
event_args['player'].speed -= 0.1
Sono aperto a qualsiasi suggerimento, quindi se è molto più semplice usare qualche altra formattazione (XML o simile), sono pronto. Tuttavia, questo sarebbe il formato ideale.
Come potrei continuare a scrivere misto Python e il linguaggio di configurazione? Ci sono progetti esistenti che potrei studiare? Ho ricercato ast
un po ', che è apparentemente progettato per l'analisi di Python, ma sto solo cercando alcune indicazioni per iniziare.
L'unica soluzione che viene in mente è:
- legge il file riga per riga e analizza manualmente ogni riga con le funzioni di stringa di Python come
.split()
- Se il contenuto della riga corrisponde a regex
^Event .*:$
, analizzerò come Python fino a quando non tornerò (come faccio?)
Ma anche questo sembra irrealizzabile, e sembra che ci debba essere un modo migliore.