skip to main content

kiesler.at

Random Guide to whatever
updated by rck, 2004-10-10

Another case of trying out the swallow hack 0.2. This time, I'm shuffling some sections around. Enjoy!

0 < n < 100

Suche nach HTML Tutorial. In der Vergangenheit bin ich da schon auf die eine oder andere SPAM-Seite gekommen. Mal sehen, was passiert.

1. Platz: Dave's Guide. Ziemlich gut gemacht.
2. Platz: Introduction to HTML. Sehr oldskool, behandelt HTML 1.0. Veraltet!
3. Platz: W3 Schools Tutorial. Ausgezeichnetes, einsteigerfreundliches Tutorial.
4. Platz: Writing HTML Ziemlich gut, die zweite Seite ist jedoch formattechnisch eine herbe Enttäuschung!
5. Platz: HTML Goodies. Sieht zwar im ersten Moment nach SPAM aus, hat aber einige nette, lockere HTML Tips. Im Kochrezept-Stil, nett gemacht.
6. Platz: Idocs Guide to HTML

Fazit: Google dürfte die Timestamps der Seiten nicht mit einbeziehen. Die Seiten sind teilweise nicht nur inhaltlich veraltet! Dennoch sind ein paar Perlen bei den Suchergebnisen dabei. Webmonkey hätte ich mir an prominenterer Stelle erwartet. Auch SELF-HTML geht mir ab!

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

Neben diesen allgemeinen Tips kann man auch noch einzelne Operationen optimieren. Head oder Tail beispielsweise hat Risewind aus dem Informatik-Forum so gelöst:

246 print_head(int rs1, int rd) {
247 
248         trace("# print_head(%d, %d)\n",
249                 rs1, rd);
250 
251         check_list(rs1);
252 
253 
254         /* wieder ein genialer Peter-Trick...
255         */
256 
257         printf("\tldq $%d, -1($%d)\n",
258                 rd, rs1);
259 
260         force_valid_list(rd);
261 }
262 
263 
264 
301 print_tail(int rs1, int rd) {
302 
303         trace("# print_tail(%d, %d)\n",
304                 rs1, rd);
305 
306         check_list(rs1);
307 
308         printf("\tldq $%d, 7($%d)\n",
309                 rd, rs1);
310 
311         force_valid_list(rd);
312 }

Der erzeugte Code:

==========> Eingabe von /usr/ftp/pub/ublu/test/code/b5.in:
hd $17

Übersetzung: Status korrekt

Ausgabe:
blbc $17, raisesig
ldq $0, -1($17)

Übersetze und linke das Testprogramm:

Rufe folgendes Codefragment auf:
return testasm(a,b,c,d) != head(b);

Erzeugter Code verhaelt sich bezueglich Signal-Erzeugung wie erwartet
und das Ergebnis des Ausdrucks ist korrekt.

==========> Eingabe von /usr/ftp/pub/ublu/test/code/b6.in:
tl $19

Übersetzung: Status korrekt

Ausgabe:
blbc $19, raisesig
ldq $0, 7($19)

Übersetze und linke das Testprogramm:

Rufe folgendes Codefragment auf:
return testasm(a,b,c,d) != tail(d);

Erzeugter Code verhaelt sich bezueglich Signal-Erzeugung wie erwartet
und das Ergebnis des Ausdrucks ist korrekt.

here you can see some nonsense article. in case it makes sense, it's all fault of Swallow Hack 0.5 for Article Manager!



RSSComments - Make a comment
The comments are owned by the poster. We are not responsible for its content.
RSSAll Articles
2008, 2007, 2006, 2005, 2004

What's Related

Article Manager

Hacks

Latest Updates

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


Zu den KO2100 Foren