014
18.06.2003, 12:18 Uhr
Bruder Leif
dances with systems (Operator)
|
Hm, wenn jetzt jede Sprache erlaubt ist, halt ich mal die Python-Fackel hoch:
Code: |
import re import string
################################################################################
keywords = ( "and", "and_eq", "asm", "auto", "bitand", "bitor", "bool", "break", "case", "catch", "char", "class", "compl", "const", "const_cast", "continue", "default", "delete", "do", "double", "dynamic_cast", "else", "enum", "explicit", "export", "extern", "false", "float", "for", "friend", "goto", "if", "inline", "int", "long", "mutable", "namespace", "new", "not", "not_eq", "operator", "or", "or_eq", "private", "protected", "public", "register", "reinterpret_cast", "return", "short", "switch", "template", "this", "throw", "true", "try", "typedef", "typeid", "typename", "union", "unsigned", "using", "virtual", "void", "volatile", "wchar_t", "while", "xor", "xor_eq")
################################################################################
def NotNum(x): if x == "" or (x[0] >= "0" and x[0] <= "9"): return 0 return 1
################################################################################
def NotKeyword(x): return not (x in keywords)
################################################################################
Rest = "" r1 = re.compile(r"\".*?\"") # Match: Stringkonstanten r2 = re.compile(r"\'.\'") # Match: Zeichenkonstanten r3 = re.compile(r"//.*") # Match: C++-Kommentare
while 1: try: s = string.strip(raw_input())
# Leerzeilen und Präprozessordirektiven überlesen if s == "" or s[0] == "#": continue
# String- und Zeichenkonstanten sowie C++-Kommentare entfernen s = r3.sub("", r2.sub("", r1.sub("", s)))
Rest += s
except EOFError: break
Rest = re.sub(r"/\*.*\*/", "", Rest) # C-Kommentare entfernen Tokens = re.split(r"[^a-zA-Z0-9_]+", Rest) # In einzelne Tokens aufteilen Tokens = filter(NotNum, Tokens) # Zahlen entfernen Tokens = filter(NotKeyword, Tokens) # Keywords entfernen
print Tokens
|
(wie wärs mit einem Python-Teil im Forum? ;-)) -- Mit 40 Fieber sitzt man nicht mehr vor dem PC. Man liegt im Bett. Mit dem Notebook. Dieser Post wurde am 18.06.2003 um 12:19 Uhr von Bruder Leif editiert. |