pycobol execution

Etiquette

class Etiquette(nom: str, instructions: str = '')

Bases : object

Cette classe est destinée a définir des etiquettes comme dans les programmes COBOL avec la notion de paragraphe.

add_instruction(instruction)
instructions: str = ''
nom: str
recherche_nom(nom)

Program

class Program(nom: str = 'default', pas_programme: str = '', last_etiquette: str = '', data: str = '')

Bases : object

squellette d’un programme

>>> pgm = Program('demo')
>>> pgm.vidage() 
'...'
>>> inst = Instruction('display', ['hello world'])
>>> pgm.pas_programme.append(inst)
>>> pgm.vidage() 
'...'
>>> pgm.run() 
E...
h...
add_data(pdata)
add_etiquette(etape)
add_step(step)
data: str = ''
last_etiquette: str = ''
nom: str = 'default'
pas_programme: str = ''
run(**arg)
vidage()

retourne une chaine de caractère contenant la liste des etiquettes d’un programme

Instruction

class Instruction(nom: str = '', arg: str = '')

Bases : object

Une instruction est un objet, une méthode et un ou plusieur parametres

accept(data)

emulation de l instruction COBOL ACCEPT Formes possibles: - ACCEPT VAR => demande une saisie sur la console - ACCEPT VAR FROM VAR2 => recupere une valeur sur VAR2 et la passe à VAR (exemple pour une variable d envirronnement) - ACCEPT VAR FROM DATE => recupere la date système sur 6 caractères: yymmdd

>>> from minimock import Mock
>>> obj = Mock('Obj')
>>> obj.mock_returns = Mock('Obj')
>>> inst = Instruction.accept(None,[obj,'DATE']) 
Cal...
arg: str = ''
display(liste)
Paramètres:

liste (list) – un ou plusieurs textes / objets a afficher

>>> from minimock import Mock
>>> ZoneIndependante= Mock('ZoneIndependante')
>>> ZoneIndependante.mock_returns = Mock('ZoneIndependante', valeur_externe = '00012'  )
>>> data1 = ZoneIndependante('MADATA')  
C...
>>> data1.valeur_externe
'00012'
>>> a = Instruction()
>>> a.display(["essai"])
essai
True
>>> a.display([data1])
00012
True
>>> a.display([data1,' essai'] )
00012 essai
True
move(data)

emulation de l’instruction COBOL MOVE TO formes possibles: - MOVE LITTERAL TO DATA. - MOVE NUMERIC TO DATA. - MOVE DATA TO DATA.

>>> from minimock import Mock
>>> obj = Mock('Obj')
>>> obj.mock_returns = Mock('Obj')
>>> inst = Instruction.move(None,['ESSAI', DATA]) 
Cal...
>>> inst = Instruction.move(None,[1234, DATA]) 
Cal...
>>> inst = Instruction.move(None,[EMETT, DATA]) 
Cal...
nom: str = ''
stop_run()
support: ClassVar[list] = ['DISPLAY', 'STOP RUN']