
Another case of trying out the swallow hack 0.2. This time, I'm shuffling some sections around. Enjoy!
0 < n < 100 | |
|---|---|
|
Eine der ersten Evolutionsstufen war eine ziemlich elegant aussehende Ersetzung der inneren Schleife. Die Performance ist da zwar sicher noch nicht am Limit, jedoch ist der Code sehr übersichtlich und schon schneller als der vorhergehende ohne Inline-Assembler.
unsigned long mem0s(unsigned char *s, unsigned long l) { Ich persönlich finde sogar diese Version deutlich übersichtlicher als die vorige, von der Angabe gar nicht zu reden. Übersichtlichkeit ist bekannterweise fast das gleiche wie Wartbarkeit. |
|
100 < n < 200 | |
|---|---|
|
1 /* scanner.lex 2 (c) 2004 René C. Kiesler 3 4 please visit http://www.kiesler.at/ 5 for further informations & support. 6 */ 7 8 9 #include <math.h> 10 11 int num_lines = 1; 12 int last_open_sighting = -1; 13 14 15 KEYWORD func|where|end|if|then|else|not|hd|tl|islist|and 16 OPERATOR \:|\;|\,|\=|\-|\+|\*|\<|\(|\) 17 LEXEM {KEYWORD}|{OPERATOR} 18 19 HEXZAHL 0x[0-9a-fA-F]+ 20 DECZAHL [0-9]+ 21 22 IDENTIFIER [a-zA-Z][0-9a-zA-Z]* 23 24 WHITESPACE [ \t]+ 25 COMMENT_START \(\* 26 COMMENT_END \*\) 27 28 NEWLINE \n 29 30 ANYCHAR . 31 32 33 %x COMMENT 34 %% 35 36 37 {COMMENT_START} { BEGIN(COMMENT); 38 last_open_sighting = num_lines; 39 } 40 <COMMENT>{COMMENT_END} BEGIN(INITIAL); 41 <COMMENT><<EOF>> { fprintf(stderr, 42 "unmatched opening comment in line %d, %s\n", 43 last_open_sighting, "eof reached."); 44 exit(1); 45 } 46 <COMMENT>\n num_lines++; 47 <COMMENT>. /* alles im Kommentar ignorieren */ 48 49 {WHITESPACE} /* Whitespace, wird ignoriert */ 50 {NEWLINE} num_lines++; 51 52 {LEXEM} printf("%s\n", yytext); 53 54 {DECZAHL} printf("num 0x%x\n", atoi(yytext)); 55 {HEXZAHL} printf("num 0x%x\n", strtol(yytext, 0, 16)); 56 57 {IDENTIFIER} printf("ident %s\n", yytext); 58 59 {ANYCHAR} { fprintf(stderr, 60 "unknown character '%s' in line %d.\n", 61 yytext, num_lines); 62 exit(1); 63 } 64 65 %% 66 67 68 main(int argc, char **argv) { 69 yyin=argc>1 ? fopen(argv[1], "r") : stdin; 70 yylex(); 71 exit(0); 72 } 73 |
|
200 < n < 300 | |
|---|---|
|
Interessanter als die Anzahl der Tokens ist oft der tatsächliche Inhalt der Tokens. Stellen wir uns vor, dass wir ein Datum prüfen möchten. Es soll das Format TT.MM.JJ haben. Der umständliche Weg: Nachsehen, ob an Stelle 3 und Stelle 6 ein '.' ist. String tag wird der Eingabestring von 0-1, String monat von 3-4, usw. Vergleichen wir das ganze mit folgender Vorgehensweise. |
|
| here you can see some nonsense article. in case it makes sense, it's all fault of Swallow Hack 0.5 for Article Manager! | |
| The comments are owned by the poster. We are not responsible for its content. |

AdministrativeTexts
updated by freddiemac1993, 2013-06-14
wiki
Re: adventures
created by brittdavis10, 2012-02-23 (1 rply, 3 views)
thread
Re: how to run phpwebsite...
created by alexander, 2011-08-25 (2 rpls, 3607 views)
thread
Re: Forum tags
created by HaroldFaragher, 2011-08-22 (3 rpls, 8488 views)
thread
