-
Notifications
You must be signed in to change notification settings - Fork 0
/
helper.py
118 lines (109 loc) · 5.49 KB
/
helper.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# Required modules
#
import keyword, builtins
#
#------------------------------------------------------------------------------------------------
# C Language Keywords and commonly used functions
#
c_keywords_list = ['auto', 'break', 'case', 'char', 'const', 'continue',
'default', 'do', 'double', 'else', 'enum', 'extern',
'float', 'for', 'goto', 'if', 'int', 'long', 'register',
'return', 'short', 'signed', 'sizeof', 'static', 'struct',
'switch', 'typedef', 'union', 'unsigned', 'void', 'volatile',
'while', 'include', 'define', 'main', 'ifndef', 'undef',
'ifdef', 'elif', 'endif', 'pragma', 'error']
c_stdio_list =['clearerr', 'fclose', 'fdopen', 'feof', 'ferror', 'fflush',
'fgetc', 'fgetpos', 'fgets', 'fileno', 'fopen', 'fprintf',
'fpurge', 'fputc', 'fputs', 'fread', 'freopen', 'fscanf',
'fseek', 'fsetpos', 'ftell', 'fwrite', 'getc', 'getchar',
'gets', 'getw', 'mktemp', 'perror', 'printf', 'putc',
'putchar', 'puts', 'putw', 'remove', 'rewind', 'scanf',
'setbuf', 'setbuffer', 'setlinebuf', 'setvbuf', 'sprintf',
'sscanf', 'strerror', 'sys_errlist', 'sys_nerr', 'tempnam',
'tmpfile','tmpnam', 'ungetc', 'vfprintf', 'vfscanf', 'vprintf',
'vscanf', 'vsprintf', 'vsscanf']
c_list = c_keywords_list + c_stdio_list
#
# END of C Language Keywords and commonly used functions
#------------------------------------------------------------------------------------------------
# Python Keywords and Builtins
#
builtins_list = [i for i in dir(builtins) if not (i.startswith('__') and i.endswith('__'))]
python_list = keyword.kwlist + builtins_list + ['self']
#
# End of Python Keywords and Builtins
#------------------------------------------------------------------------------------------------
# Ruby Reserved Words
#
r_error = ['ArgumentError', 'EOFError', 'FloatDomainError', 'IOError',
'IndexError', 'LoadError', 'MysqlError', 'NameError',
'NoMemoryError', 'NotImplementedError', 'PGError',
'RangeError', 'RegexpError', 'RuntimeError', 'ScanError',
'SecurityError', 'SocketError', 'SyntaxError',
'SystemStackError', 'ThreadError', 'TypeError', 'ZeroDivisionError']
r_constants = ['ADDITIONAL_LOAD_PATHS', 'ARGF', 'ARGV', 'CGI', 'CROSS_COMPILING',
'ENV', 'ERB', 'FALSE', 'GC', 'IO', 'LN_SUPPORTED', 'NIL',
'OPT_TABLE', 'PLATFORM', 'RAKEVERSION', 'RELEASE_DATE', 'RUBY',
'RUBY_PLATFORM', 'RUBY_RELEASE_DATE', 'RUBY_VERSION', 'STDERR',
'STDIN', 'STDOUT', 'TOPLEVEL_BINDING', 'TRUE', 'VERSION', 'YAML']
r_reserved_words = ['ActionController', 'ActionView', 'ActiveRecord', 'ArgumentError',
'Array', 'BasicSocket', 'Benchmark', 'Bignum', 'Binding',
'CGIMethods', 'Class', 'ClassInheritableAttributes', 'Comparable',
'ConditionVariable', 'Config', 'Continuation', 'DRb', 'DRbIdConv',
'DRbObject', 'DRbUndumped', 'Data', 'Date', 'DateTime',
'Delegater', 'Delegator', 'Digest', 'Dir', 'EOFError', 'Enumerable',
'Errno', 'Exception', 'FalseClass', 'Fcntl', 'File', 'FileList',
'FileTask', 'FileTest', 'FileUtils', 'Fixnum', 'Float',
'FloatDomainError', 'Gem', 'GetoptLong', 'Hash', 'IOError',
'IPSocket', 'IPsocket', 'IndexError', 'Inflector', 'Integer',
'Interrupt', 'Kernel', 'LoadError', 'LocalJumpError', 'Logger',
'Marshal', 'MatchData', 'MatchingData', 'Math', 'Method', 'Module',
'Mutex', 'Mysql', 'MysqlError', 'MysqlField', 'MysqlRes',
'NameError', 'NilClass', 'NoMemoryError', 'NoMethodError', 'NoWrite',
'NotImplementedError', 'Numeric', 'Object', 'ObjectSpace', 'Observable',
'Observer', 'PGError', 'PGconn', 'PGlarge', 'PGresult', 'PStore',
'ParseDate', 'Precision', 'Proc', 'Process', 'Queue', 'Rack', 'Rake',
'RakeApp', 'RakeFileUtils', 'Range', 'RangeError', 'Rational', 'Regexp',
'RegexpError', 'Request', 'RuntimeError', 'ScanError', 'ScriptError',
'SecurityError', 'Signal', 'SignalException', 'SimpleDelegater',
'SimpleDelegator', 'Singleton', 'SizedQueue', 'Socket', 'SocketError',
'StandardError', 'String', 'StringScanner', 'Struct', 'Symbol',
'SyntaxError', 'SystemCallError', 'SystemExit', 'SystemStackError',
'TCPServer', 'TCPSocket', 'TCPserver', 'TCPsocket', 'Task', 'Text',
'Thread', 'ThreadError', 'ThreadGroup', 'Time', 'Transaction', 'TrueClass',
'TypeError', 'UDPSocket', 'UDPsocket', 'UNIXServer', 'UNIXSocket',
'UNIXserver', 'UNIXsocket', 'UnboundMethod', 'Url', 'Verbose',
'ZeroDivisionError']
r_keywords = ['alias', 'and', 'BEGIN', 'begin', 'break', 'case', 'class', 'def',
'defined?', 'do', 'else', 'elsif', 'END', 'end', 'ensure', 'false',
'for', 'if', 'module', 'next', 'nil', 'not', 'or', 'redo', 'rescue',
'retry', 'return', 'self', 'super', 'then', 'true', 'undef', 'unless',
'until', 'when', 'while', 'yield', '_ _FILE_ _', 'LINE']
ruby_list = r_keywords + r_constants + r_error + r_reserved_words
#
#
# End of Ruby Reserved Words
#
#------------------------------------------------------------------------------------------------
#
# Snippets
C_STYLES = { 'if' : ('() {','}', True),
'else' : ('{', '}', True),
'while' : ('() {', '}', True),
'for' : ('( ; ; ) {', '}', True),
'do' : ('{', '}while();', True),
'switch': ('() {', '}', True),
'main' : ('() {', '}', True),
'struct' : (' {', '};', True)
}
PY_STYLES = { 'if' : ('()', ':', False),
'else' : (':', '', False),
'elif' : ('()', ':', False),
'try' : (':', 'except:', True),
'while' : ('()', ':', False),
'for' : ('()', ':', False),
'def' : (' ()', ':', False),
'class' : (' :', '\tdef __init__(self):', True)
}
#
#