def parser(x): scanner_out = scanner(x) if (scanner_out[1]): parser_in = scanner_out[0] parser_out = T(parser_in) return parser_out else: print chr(92) + " scanner_failed"
def scan(): host = 'vulnweb.com' results = {} # creating thread for different scan settings ack_scan = threading.Thread(target=scanner('-sA -F', host, results)) syn_scan = threading.Thread(target=scanner('-sS -F', host, results)) xmass_scan = threading.Thread(target=scanner('-sX -F', host, results)) null_scan = threading.Thread(target=scanner('-sN -F', host, results)) ack_scan.start() syn_scan.start() xmass_scan.start() null_scan.start() return jsonify(results)
def test_real_numbers(self): _input = "1.2345 12345.0 .1234 0.1234" expected_tokens = [ ('real_number', '1.2345'), ('real_number', '12345.0'), ('real_number', '.1234'), ('real_number', '0.1234')] actual_tokens = scanner(_input) self.assertEqual(expected_tokens, actual_tokens[0])
def test_constant_string(self): _input = '[stdout "hello world !@#$%^&*()[]"]' expected_tokens = [ ('bracket-l','['), ('keyword','stdout'), ('string', 'hello world !@#$%^&*()[]'), ('bracket-r',']')] actual_tokens = scanner(_input) self.assertEqual(expected_tokens, actual_tokens[0])
def test_unary_operators(self): _input = '[sin x]' expected_tokens = [('bracket-l','['), ('trig_op','sin'), ('ID','x'), ('bracket-r',']')] actual_tokens = scanner(_input) self.assertEqual(expected_tokens, actual_tokens[0]) expected_output = [()]
def test_comment_lines(self): # Arrange _input = "// this is a comment line " # Act expected_tokens = [] actual_tokens = scanner(_input) # Assert self.assertEqual(expected_tokens, actual_tokens[0])
def test(ts): test_results = [] for t in ts: scanner_out = scanner(t) parser_out = parser(t) if parser_out: parse_tree = parser_out[1] #print_tree(parse_tree) gforth_code = generator2(parse_tree) print t, ' -> ', gforth_code else: print 'parsing failed on: ',t
def test_binary_expressions(self): _input = '[+ 1 [* 2 3]]' expected_tokens = [('bracket-l','['), ('arithmatic_op','+'), ('int_number','1'), ('bracket-l','['), ('arithmatic_op','*'), ('int_number','2'), ('int_number','3'), ('bracket-r',']'), ('bracket-r',']')] actual_tokens = scanner(_input) self.assertEqual(expected_tokens, actual_tokens[0])
def __init__(self): self.directory = '' # load design super(GUIMain, self).__init__() uic.loadUi('gui/settings.ui', self) self.show() ui1 = scanner() ui2 = raw_plt() ui3 = onlineTest() ui4 = credits() # add slots self.scannerButton.clicked.connect(self.scannerButton_clicked) self.plotButton.clicked.connect(self.plotButton_clicked) self.onlineTestButton.clicked.connect(self.onlineTestButton_clicked) self.creditsButton.clicked.connect(self.creditsButton_clicked)
def parser(x): #print "scanning the following:" #print x, '\n' scanner_out = scanner(x) #print "list of tokens:" #print scanner_out[0], '\n' if (scanner_out[1]): #print "parsing..." parser_in = scanner_out[0] parser_out = T(parser_in) return parser_out else: print chr(92) + " scanner_failed"
def parser(x): #print "scanning the following:" #print x, '\n' scanner_out = scanner(x) if ("-t" in user_options): print "list of tokens:" for token in scanner_out[0]: print '\t',token if (scanner_out[1]): #print "parsing..." parser_in = scanner_out[0] parser_out = T(parser_in,derivation) return parser_out else: return "scanner_failed"
def test_identifiers_vs_keywords(self): _input = '[let [[a int][b real]]]' expected_tokens = [ ('bracket-l','['), ('keyword','let'), ('bracket-l','['), ('bracket-l','['), ('ID','a'), ('keyword','int'), ('bracket-r',']'), ('bracket-l','['), ('ID','b'), ('keyword','real'), ('bracket-r',']'), ('bracket-r',']'), ('bracket-r',']'), ] actual_tokens = scanner(_input) self.assertEqual(expected_tokens, actual_tokens[0])
def test_keywords_only(self): # Arrange _input = "bool let real string stdout int if while" # Act expected_tokens = [ ('keyword', 'bool'), ('keyword', 'let'), ('keyword', 'real'), ('keyword', 'string'), ('keyword', 'stdout'), ('keyword', 'int'), ('keyword', 'if'), ('keyword', 'while')] actual_tokens = scanner(_input) # Assert self.assertEqual(expected_tokens, actual_tokens[0])
def test_assignment_operator(self): _input = '[:= x 123][:= y 1.23][:= z .123]' expected_tokens = [ ('bracket-l','['), ('assignment_op',''), ('ID','x'), ('int_number','123'), ('bracket-r',']'), ('bracket-l','['), ('assignment_op',''), ('ID','y'), ('real_number','1.23'), ('bracket-r',']'), ('bracket-l','['), ('assignment_op',''), ('ID','z'), ('real_number','.123'), ('bracket-r',']'), ] actual_tokens = scanner(_input) self.assertEqual(expected_tokens, actual_tokens[0])
def scannerButton_clicked(self): self.scanner = scanner()
else: return False def parse(self): if(self.program()!=False): f = open('output.txt', 'a') f.write('\n' + "program found") f.close() self.g.view() return True f = open('Input.txt', 'r') text=f.read() f.close() s=scanner(text) parse_input=s.scan() print(parse_input) p =parser(parse_input) p.parse()
digit = "0123456789" digit = character(digit) tab = chr(9) tab = character(tab) eol = chr(10) eol = character(eol) #tokens ident = letter + " ((" + letter + "|" + digit + ")*)" number = digit + " ((" + digit + ")*)" automata_keyword = [ident] automata = [number] charss = [chr(9), chr(10)] scanner(keywords, automata, automata_keyword, charss) def Expr(): while (True): Stat("") get(".") return result def Stat(): value = 0 value = input() value = Factor(value)
def printoutput(self): prog = self.input.toPlainText() print(prog) result = scanner(prog) self.textEdit.setPlainText(result)
O = eval(util.decode_str(r['data'], NODE_KEY)) break time.sleep(1) O['debug'] = NODE_DEBUG util.msg("[Project] Target:%s Time:%s Module:%s Thread:%s" % (O['target'], util.date(O['start_time']), O['module'], O['thread']), 1) O['target'] = "w" O['key'] = NODE_KEY #O['depth'] = 5 # notice O['server_url'] = SERVER + "?m=node&a=" O['web-ports'] = util.csv2array(O['web-ports']) O['app-ports'] = util.csv2array(O['app-ports']) O['file-ext'] = util.csv2array(O['file-ext']) O['module'] = util.csv2array(O['module']) g.config(O) # print g.O info = scanner() urls = [] if info['web']: target = Url("http://" + O['target']) crawler = Crawler(target) crawler.parse(GetRequest(target)) urls.append(crawler) module = {} module_list = ["sqli", "xss"] task_queue = Queue.Queue() for item, target in itertools.product(module_list, urls): module[item] = __import__(item) for request in target.requests: task_queue.put({"module":item, "request":request})
def test_positive_exponent(self): _input = "1.0e3 1.123e123" expected_output = [('real_number', '1.0e3'), ('real_number', '1.123e123')] actual_output = scanner(_input) self.assertEqual(expected_output, actual_output[0])
def test_invalid_exponent(self): _input = "1.0e 1" expected_output = [] actual_output = scanner(_input) self.assertEqual(expected_output, actual_output[0])
def test_possible_invalid_string_constants(self): _input = '"hello world' expected_output = [] actual_output = scanner(_input) self.assertEqual(expected_output, actual_output[0])
def test_possible_invalid_identifier_name(self): _input = '2varName' expected_output = [('int_number', '2'), ('ID', 'varName')] actual_output = scanner(_input) self.assertEqual(expected_output, actual_output[0])
def main(): TNT = "{};,ia=+*()x-#PLVSXYZ" M = [[2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,99,0,0,0,0,0,0,0], [0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,3,4,0,0,0,0], [0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,0,0,0,0,0], [0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0], [0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,-4,-4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,-2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,-3,-3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,19,0,0,0,0,17,0,20,18,0,0,0,0,0,14,15,16], [0,-5,0,0,0,0,0,21,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,-7,0,0,0,0,0,-7,22,0,-7,0,0,0,0,0,0,0,0,0,0], [0,-9,0,0,0,0,0,-9,-9,0,-9,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,19,0,0,0,0,17,0,20,18,0,0,0,0,0,23,15,16], [0,0,0,0,19,0,0,0,0,17,0,20,18,0,0,0,0,0,0,0,24], [0,-12,0,0,0,0,0,-12,-12,0,-12,0,0,0,0,0,0,0,0,0,0], [0,-13,0,0,0,0,0,-13,-13,0,-13,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,19,0,0,0,0,17,0,20,18,0,0,0,0,0,0,25,16], [0,0,0,0,19,0,0,0,0,17,0,20,18,0,0,0,0,0,0,0,26], [0,0,0,0,0,0,0,21,0,0,27,0,0,0,0,0,0,0,0,0,0], [0,-11,0,0,0,0,0,-11,-11,0,-11,0,0,0,0,0,0,0,0,0,0], [0,-6,0,0,0,0,0,-6,22,0,-6,0,0,0,0,0,0,0,0,0,0], [0,-8,0,0,0,0,0,-8,-8,0,-8,0,0,0,0,0,0,0,0,0,0], [0,-10,0,0,0,0,0,-10,-10,0,-10,0,0,0,0,0,0,0,0,0,0]] p = ["P'->P", "P->{L}", "L->V;S", "V->V,i", "V->ai", "S->i=X", "X->X+T", "X->Y", "Y->Y*Z", "Y->Z", "Z->(E)", "Z->-Z", "Z->i", "Z->x"] LIN = len(M) PRO_NUM = len(p) state = [0]*50 top = 0 symbol = ['#']*50 global i code,value = '','' Buf = pretreatment() while(Buf[i] == ' '): i += 1 code,value,i = scanner(Buf,i) j = 0 print 'step','\t\t\t\t','状态栈','\t\t\t',' ','符号栈','\t\t\t',' ','输入串首字符' while(1): print j,')','\t\t\t\t', j += 1 state_str = '' for x in range(top+1): state_str += str(state[x]) print state_str,' '*(20-len(state_str)), print '\t\t', symbol_str = '' for y in range(top+1): symbol_str += str(symbol[y]) print symbol_str,' '*(10-len(symbol_str)), print '\t\t\t',code action = M[state[top]][col(code,TNT)] if(action >= 1 and action < LIN): top += 1 state[top] = action symbol[top] = code while(Buf[i] == ' '): i += 1 code,value,i = scanner(Buf,i) elif action > -PRO_NUM and action <= -1: top -= len(p[-action]) -3 state[top+1] = M[state[top]][col(p[-action][0],TNT)] top += 1 symbol[top] = p[-action][0] elif action == 99: print '\t\t\t\t','Acc' break else: print 'Err in main->',action break
def test_3_scan_FOUND(self): self.scannerobj = scanner('.', ['TODO1:'], ['reports']) self.assertGreater(len(self.scannerobj.scan()), 0)
def setUp(self): self.scannerobj = scanner('.', ignorelist=['reports'])
def parse(self): #scanner is used with the parser testScan = scanner("sclTest.scl") testScan.scanning()
time.sleep(1) O['debug'] = NODE_DEBUG util.msg( "[Project] Target:%s Time:%s Module:%s Thread:%s" % (O['target'], util.date(O['start_time']), O['module'], O['thread']), 1) O['target'] = "w" O['key'] = NODE_KEY #O['depth'] = 5 # notice O['server_url'] = SERVER + "?m=node&a=" O['web-ports'] = util.csv2array(O['web-ports']) O['app-ports'] = util.csv2array(O['app-ports']) O['file-ext'] = util.csv2array(O['file-ext']) O['module'] = util.csv2array(O['module']) g.config(O) # print g.O info = scanner() urls = [] if info['web']: target = Url("http://" + O['target']) crawler = Crawler(target) crawler.parse(GetRequest(target)) urls.append(crawler) module = {} module_list = ["sqli", "xss"] task_queue = Queue.Queue() for item, target in itertools.product(module_list, urls): module[item] = __import__(item) for request in target.requests: task_queue.put({"module": item, "request": request})
from scanner import * scan = scanner('192992', '7172') scan.scan_fun()
f"Error: Invalid display statement syntax. Unexpected token {display_token(tokens[index + 1])}" ) # function to read in the end function statement of the scl program. If the token is a keyword, then it is recognized as an end function statement. def endfunc_stmt(index): if tokens[index + 1].Toktype == "keyword": print("<endfunct> ->", tokens[32].word, "-> <function_main> ->", tokens[33].word) return index + 2 else: print( f"Error: Invalid end statement syntax. Unexpected token {display_token(tokens[index + 1])}" ) p = parser(scanner("sclTest.scl")) p.parse() # index used to parse through the tokens list and used along with the functions in the parser class index = 0 while index < len(tokens): # check for the first token in the tokens list. If it is "import", then it'll check the import statement function to determine if it's recognized if tokens[index].word == "import": index = parser.import_stmt(index) continue # check if the next line is implementations if tokens[index].word == "implementations": index = (parser.implement_stmt(index)) continue # check for the first word of the line and if it's "function", then it'll check the function statement function to determine if it's recognized if tokens[index].word == "function":