<?xml version="1.0" encoding="utf-8"?>
<!-- generator="FeedCreator 1.7.2" -->
<rss version="2.0">
    <channel>
        <title>Lowyat.NET: Latest topics by demonkiddo</title>
        <description></description>
        <link>http://forum.lowyat.net/</link>
        <lastBuildDate>Wed, 15 Jul 2026 09:13:57 +0800</lastBuildDate>
        <generator>FeedCreator 1.7.2</generator>
        <item>
            <title>Looking for microe book</title>
            <link>http://forum.lowyat.net/topic/1663689</link>
            <description>Hi all, &lt;br /&gt;&lt;br /&gt;I&amp;#39;m looking for book as below.Second hand is fine for me.&lt;br /&gt;&lt;br /&gt;Digital Design Principle &amp;amp; Practices by John F Wakerly&lt;br /&gt;Advanced Microprocessor by Daniel Tabak&lt;br /&gt;&lt;br /&gt;Please reply in this topic if you have and want to sell it. Thank you&lt;br /&gt;&lt;br /&gt;rgds&lt;br /&gt;Lim</description>
            <author>demonkiddo</author>
            <category>LYN Book Club</category>
            <pubDate>Sat, 04 Dec 2010 08:58:54 +0800</pubDate>
        </item>
        <item>
            <title>[Help] Lexical Analyser using Knoppix</title>
            <link>http://forum.lowyat.net/topic/376460</link>
            <description>i have a lexical tester like below&lt;br /&gt;&lt;br /&gt;&lt;span style='color:blue'&gt;/* Sample start code for lexical analyser.&lt;br /&gt; * You will have to write yylex() and code to insert things into the&lt;br /&gt; * symbol table yourself.&lt;br /&gt; *&lt;br /&gt; * Note: yylex should read from the FILE *inputfile instead of stdin&lt;br /&gt; *       in order for the file opening to work. I.e. use&lt;br /&gt; *       fgetc(inputfile) instead of getchar().&lt;br /&gt; */&lt;br /&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;#include &amp;quot;lex.h&amp;quot;&lt;br /&gt;&lt;br /&gt;int main(int argc, char *argv[])&lt;br /&gt;{ if (argc&amp;gt;=2)&lt;br /&gt;  { inputfile = fopen(argv[1],&amp;quot;r&amp;quot;);&lt;br /&gt;    if (inputfile==NULL)&lt;br /&gt;    { perror(&amp;quot;opening input file&amp;quot;);&lt;br /&gt;      exit(1);&lt;br /&gt;    }&lt;br /&gt;    if (argc&amp;gt;=3)&lt;br /&gt;    { outputfile = fopen(argv[2],&amp;quot;w&amp;quot;);&lt;br /&gt;      if (outputfile==NULL)&lt;br /&gt;      { perror(&amp;quot;opening output file&amp;quot;);&lt;br /&gt;        exit(1);&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;    else&lt;br /&gt;      outputfile=stdout;&lt;br /&gt;  }&lt;br /&gt;  else&lt;br /&gt;  { inputfile = stdin;&lt;br /&gt;    outputfile = stdout;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  /* Code to test yylex */&lt;br /&gt;  do &lt;br /&gt;  { nextsymb = yylex();&lt;br /&gt;    printToken(nextsymb);&lt;br /&gt;  } while (nextsymb&amp;#33;=T_EOF);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;char tokenNames[36][20] = {&lt;br /&gt;  &amp;quot;T_INVALID&amp;quot;, &lt;br /&gt;  &amp;quot;T_START&amp;quot;, &lt;br /&gt;  &amp;quot;T_END&amp;quot;, &lt;br /&gt;  &amp;quot;T_FUN&amp;quot;,&lt;br /&gt;  &amp;quot;T_NUF&amp;quot;,&lt;br /&gt;  &amp;quot;T_VAR&amp;quot;,  &lt;br /&gt;  &amp;quot;T_IF&amp;quot;,&lt;br /&gt;  &amp;quot;T_THEN&amp;quot;,&lt;br /&gt;  &amp;quot;T_ELSE&amp;quot;, &lt;br /&gt;  &amp;quot;T_FI&amp;quot;,&lt;br /&gt;  &amp;quot;T_PRINT&amp;quot;,&lt;br /&gt;  &amp;quot;T_GETCHAR&amp;quot;,&lt;br /&gt;  &amp;quot;T_PUTCHAR&amp;quot;,&lt;br /&gt;  &amp;quot;T_RETURN&amp;quot;,&lt;br /&gt;  &amp;quot;T_FOR&amp;quot;,&lt;br /&gt;  &amp;quot;T_DO&amp;quot;,&lt;br /&gt;  &amp;quot;T_TIMES&amp;quot;,&lt;br /&gt;  &amp;quot;T_ROF&amp;quot;,&lt;br /&gt;  &amp;quot;T_BRA&amp;quot;,  &lt;br /&gt;  &amp;quot;T_KET&amp;quot;,  &lt;br /&gt;  &amp;quot;T_COMMA&amp;quot;,&lt;br /&gt;  &amp;quot;T_PERIOD&amp;quot;,&lt;br /&gt;  &amp;quot;T_LESS&amp;quot;, &lt;br /&gt;  &amp;quot;T_MORE&amp;quot;, &lt;br /&gt;  &amp;quot;T_EQUAL&amp;quot;,&lt;br /&gt;  &amp;quot;T_PLUS&amp;quot;, &lt;br /&gt;  &amp;quot;T_MINUS&amp;quot;,&lt;br /&gt;  &amp;quot;T_MULTIPLY&amp;quot;,&lt;br /&gt;  &amp;quot;T_DIVIDE&amp;quot;,&lt;br /&gt;  &amp;quot;T_MODULUS&amp;quot;,&lt;br /&gt;  &amp;quot;T_ASSIGN&amp;quot;,&lt;br /&gt;  &amp;quot;T_IDENTIFIER&amp;quot;,&lt;br /&gt;  &amp;quot;T_NUMBER&amp;quot;,&lt;br /&gt;  &amp;quot;T_CHAR&amp;quot;, &lt;br /&gt;  &amp;quot;T_STRING&amp;quot;,&lt;br /&gt;  &amp;quot;T_EOF&amp;quot;&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;int printToken(int nextsymb)&lt;br /&gt;{ fprintf(stderr,&amp;quot;%s &amp;quot;,tokenNames[nextsymb]);&lt;br /&gt;  switch (nextsymb)&lt;br /&gt;  { case T_NUMBER:&lt;br /&gt;      fprintf(stderr,&amp;quot;%d&amp;#092;n&amp;quot;, nextvalue);&lt;br /&gt;      break;&lt;br /&gt;    case T_CHAR:&lt;br /&gt;      fprintf(stderr,&amp;quot;&amp;#39;%c&amp;#39;&amp;#092;n&amp;quot;,nextvalue);&lt;br /&gt;      break;&lt;br /&gt;    case T_IDENTIFIER:&lt;br /&gt;      fprintf(stderr,&amp;quot;%d %s&amp;#092;n&amp;quot;, nextvalue, symtab[nextvalue].name);&lt;br /&gt;      break;&lt;br /&gt;    case T_INVALID:&lt;br /&gt;      fprintf(stderr, &amp;quot;&amp;#39;%c&amp;#39;&amp;#092;n&amp;quot;, nextvalue);&lt;br /&gt;      break;&lt;br /&gt;    case T_STRING:&lt;br /&gt;      fprintf(stderr,&amp;quot;&amp;#092;&amp;quot;%s&amp;#092;&amp;quot;&amp;quot;, nexttext);&lt;br /&gt;    default:&lt;br /&gt;      putc(&amp;#39;&amp;#092;n&amp;#39;,stderr);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;above is a uncomplete lexical analyser.....i need to add in the scanner part to scan the 36 T_integer, creat a symbol table and add in source code so that the lexical analyser can recognize character, integer, number, brackets etc..&lt;br /&gt;&lt;br /&gt;anyone that has been went through this lexical analyser please give me some hint of how to start doing it.....thank you&lt;br /&gt;&lt;br /&gt;below are the 6 of the results that produce by complete lexical analyser after compling</description>
            <author>demonkiddo</author>
            <category>Linux &amp;amp; Open Source Software</category>
            <pubDate>Sat, 02 Dec 2006 14:54:13 +0800</pubDate>
        </item>
    </channel>
</rss>
