2
2
import argparse
3
3
from importlib import import_module
4
4
from time import sleep
5
+ import sys
5
6
6
- last_line = ""
7
- key_layout = "us"
8
- default_delay = 10
9
- string_delay = 1
10
7
11
- piparser = argparse .ArgumentParser ()
12
- piparser .add_argument ("-i" , "--input" , help = "File input" )
13
- piparser .add_argument (
14
- "-l" , "--keyboardlayoutcode" , help = "Language codes specified by ISO639-1:2002"
15
- )
16
- piparser .add_argument ("-d" , "--defaultdelay" , help = "The default delay of execution" )
17
- piparser .add_argument (
18
- "-s" , "--defaultchardelay" , help = "The default char delay of execution"
19
- )
20
- piargs = piparser .parse_args ()
21
- if piargs .keyboardlayoutcode is not None :
22
- key_layout = piargs .keyboardlayoutcode
23
- if piargs .defaultdelay is not None :
24
- default_delay = piargs .defaultdelay
25
- if piargs .defaultchardelay is not None :
26
- string_delay = piargs .defaultchardelay
27
- try :
28
- keymap = import_module ("pd_key_maps.keymap_" + key_layout )
29
- except ModuleNotFoundError :
30
- exit (3 )
8
+ def eprint (* args , ** kwargs ):
9
+ print (* args , file = sys .stderr , ** kwargs )
31
10
32
11
33
12
def string (string ):
@@ -51,9 +30,13 @@ def pharse(line, known, deltrue):
51
30
elif command [0 ] == "REM" :
52
31
return
53
32
elif command [0 ] == "REPEAT" :
54
- for i in range (int (command [1 ])):
55
- pharse (last_line .strip (), [[], []], False )
56
- return # todo
33
+ try :
34
+ for i in range (int (command [1 ])):
35
+ pharse (last_line .strip (), [[], []], False )
36
+ return # todo
37
+ except RecursionError :
38
+ eprint ("You can not repeat the repeat" )
39
+ exit (4 )
57
40
elif command [0 ] == "DEFAULTCHARDELAY" :
58
41
string_delay = int (command [1 ])
59
42
return
@@ -87,6 +70,7 @@ def pharse(line, known, deltrue):
87
70
pharse (keymap .aliasmap [command [0 ]] + " " + " " .join (command [1 :]), known , True )
88
71
return
89
72
else :
73
+ eprint ('Could not find "' + command [0 ] + '"' )
90
74
exit (2 )
91
75
92
76
@@ -119,12 +103,45 @@ def main():
119
103
file1 .close ()
120
104
else :
121
105
while True :
122
- line = input ()
106
+ try :
107
+ line = input ()
108
+ except EOFError :
109
+ break
123
110
if not line :
124
111
break
125
112
pharse (line .strip (), [[], []], False )
126
113
last_line = line
127
114
128
115
129
- main ()
116
+ if __name__ == "__main__" :
117
+ last_line = ""
118
+ key_layout = "us"
119
+ default_delay = 10
120
+ string_delay = 1
121
+
122
+ piparser = argparse .ArgumentParser ()
123
+ piparser .add_argument ("-i" , "--input" , help = "File input" )
124
+ piparser .add_argument (
125
+ "-l" , "--keyboardlayoutcode" , help = "Language codes specified by ISO639-1:2002"
126
+ )
127
+ piparser .add_argument ("-d" , "--defaultdelay" , help = "The default delay of execution" )
128
+ piparser .add_argument (
129
+ "-s" , "--defaultchardelay" , help = "The default char delay of execution"
130
+ )
131
+ piargs = piparser .parse_args ()
132
+ if piargs .keyboardlayoutcode is not None :
133
+ key_layout = piargs .keyboardlayoutcode
134
+ if piargs .defaultdelay is not None :
135
+ default_delay = piargs .defaultdelay
136
+ if piargs .defaultchardelay is not None :
137
+ string_delay = piargs .defaultchardelay
138
+ try :
139
+ keymap = import_module ("pd_key_maps.keymap_" + key_layout )
140
+ except ModuleNotFoundError :
141
+ eprint ('Keymap "' + key_layout + '" could not be found' )
142
+ exit (3 )
143
+ try :
144
+ main ()
145
+ except KeyboardInterrupt :
146
+ pass
130
147
exit (0 )
0 commit comments