Commit 8078de1db9801c447ef6070cf7b923c6d7e2c6ab

Authored by Cédric RICARD
1 parent 50ee169d

Anubis compiler is built with scons

anubis_dev/compiler/SConstruct 0 → 100644
  1 +import os
  2 +import platform
  3 +
  4 +opts = Options('DefaultOptions.py')
  5 +opts.Add(BoolOption('DEBUG', 'Set to 1 to build with debug symbols', 0))
  6 +
  7 +debug = ARGUMENTS.get('debug', 0)
  8 +
  9 +env = Environment(options = opts, ENV = os.environ)
  10 +
  11 +if debug:
  12 + env.Append(CPPDEFINES = {'DEBUG': None})
  13 +
  14 +compiler_output_name = 'anubis'
  15 +
  16 +if platform.system() == 'Linux':
  17 + env.Append(CPPDEFINES = {'_LINUX_': None})
  18 + env.Append(CCFLAGS = ' -O2 -c -Wall -Wstrict-prototypes')
  19 + compiler_output_name = 'anubis_with_symbol'
  20 +
  21 +
  22 +env['DEVDIR'] = os.path.join('..')
  23 +env['BASEDIR'] = os.path.join(env['DEVDIR'], '..')
  24 +env['BINDIR'] = os.path.join(env['ENV']['HOME'], 'bin')
  25 +
  26 +env.Append(CPPPATH = [os.path.join(env['DEVDIR'], 'include'), '.'])
  27 +
  28 +#SConscript('src/SConscript', exports='env', build_dir='build', duplicate=0)
  29 +env.BuildDir('build', 'src', duplicate=0)
  30 +env.BuildDir(os.path.join('build', 'share'), os.path.join(env['DEVDIR'], 'share'), duplicate=0)
  31 +env.BuildDir(os.path.join('build', 'cipher'), os.path.join(env['DEVDIR'], 'cipher'), duplicate=0)
  32 +
  33 +main_src = [os.path.join('build', x) for x in Split("""
  34 + new_var.c interp.c globals.c mallocz.c opdef.c
  35 + unify.c show.c msgtexts.c typedef.c rectype.c typewidth.c implem.c
  36 + determin.c unknowns.c eqcode.c typecmp.c dumpct.c typetools.c destruct.cpp
  37 + compile.c delcode.c symcode.c vminstr.c rwcode.c index.c
  38 + checkexpr.c polish.c grammar_tools.c
  39 +""")]
  40 +
  41 +share_src = [os.path.join('build', 'share', x) for x in Split("""
  42 + FileIO.cpp
  43 + IniFile.cpp
  44 + String.cpp
  45 + DebugLog.cpp
  46 + MultiPath.cpp
  47 + StringList.cpp
  48 + List.cpp
  49 +""")]
  50 +
  51 +special_src = [os.path.join('build', x) for x in Split("""
  52 + expr.cpp output.cpp main.cpp predef.c
  53 +""")]
  54 +
  55 +cipher_src = [os.path.join('build', 'cipher', x) for x in Split("""
  56 + blowfish.c sha1.c
  57 +""")]
  58 +
  59 +
  60 +#
  61 +# scanner
  62 +#
  63 +
  64 +grammar = env.CFile('src/grammar.tab.c', 'src/grammar.y', YACCFLAGS = '-l -v -d')
  65 +env.Depends(grammar, 'src/compil.h')
  66 +
  67 +
  68 +lexer = env.CFile('src/lex.yy.c', 'src/lexer.l')
  69 +env.Depends(lexer, grammar)
  70 +env.Depends(lexer, 'src/compil.h')
  71 +
  72 +#
  73 +# shared objects
  74 +#
  75 +main_obj = env.Object(main_src + [ grammar[0] ] + lexer)
  76 +share_obj = env.Object(share_src)
  77 +cipher_obj = env.Object(cipher_src)
  78 +
  79 +
  80 +#
  81 +# The 'private' Anubis compiler (used only by the developers)
  82 +# It is used for compiling 'predefined.anubis'
  83 +#
  84 +myenv = env.Copy()
  85 +
  86 +specialDefs = env['CPPDEFINES'].copy()
  87 +specialDefs['myanubis'] = None
  88 +special_obj = myenv.Object(special_src, CPPDEFINES = specialDefs, OBJPREFIX = 'my_')
  89 +myenv.Ignore(special_obj, 'src/predef_npd.aux')
  90 +myanubis = myenv.Program('myanubis', main_obj + share_obj + special_obj + cipher_obj)
  91 +
  92 +#
  93 +# Making the anubis predefine
  94 +#
  95 +
  96 +#def predefEmitter(target, source, env):
  97 +# return (['predef_npd.aux', 'predef.aux'],
  98 +# ['predef.anubis', os.path.join(env['DEVDIR'], 'library', 'predefined.anubis'), myanubis)
  99 +
  100 +#predefBuilder = Builder(emitter = predefEmitter,
  101 +# action = 'build/myanubis -predef -Isrc')
  102 +#env.Append(BUILDERS = {'Predef' : predefBuilder})
  103 +
  104 +
  105 +predef = env.Command('src/predef_npd.aux', #['predef_npd.aux', 'predef.aux'],
  106 + ['src/predef.anubis', os.path.join(env['DEVDIR'], 'library', 'predefined.anubis'), myanubis],
  107 + ['rm -f src/predef.aux',
  108 + 'rm -f src/predef_npd.aux',
  109 + 'cd src && ../myanubis -predef'])
  110 +#cd src
  111 +#myanubis -predef
  112 +#in: src/predef.anubis library/predefined.anubis
  113 +#out: predef.aux predef.
  114 +
  115 +
  116 +#
  117 +# The Anubis compiler without predef.dat nor ankh/djed
  118 +#
  119 +npdenv = env.Copy()
  120 +
  121 +specialDefs = env['CPPDEFINES'].copy()
  122 +specialDefs['_no_predef_dat_'] = None
  123 +special_obj = npdenv.Object(special_src, CPPDEFINES = specialDefs, OBJPREFIX = 'npd_')
  124 +npdenv.Depends(special_obj, predef)
  125 +anubis = npdenv.Program(compiler_output_name, main_obj + share_obj + special_obj + cipher_obj)
  126 +
  127 +if env['PLATFORM'] == 'posix':
  128 + anubis = npdenv.Command('anubis', compiler_output_name, 'strip -o $TARGET $SOURCE')
  129 +
  130 +if env['PLATFORM'] == 'posix':
  131 + installPath = os.path.join(env['BASEDIR'], 'anubis_distrib', 'linux_install')
  132 +elif env['PLATFORM'] == 'win32':
  133 + installPath = os.path.join(env['BASEDIR'], 'anubis_distrib', 'linux_install')
  134 +
  135 +env.Install(installPath, anubis)
  136 +env.Install(env['BINDIR'], anubis)
  137 +env.Alias('install', [installPath, env['BINDIR']])
  138 +
  139 +env.Alias('all', [anubis, 'install'])
  140 +
  141 +Default(anubis)
  142 +
  143 +
  144 +
  145 +
  146 +Help("""
  147 +Type: 'scons compiler' to build the production program,
  148 + 'scons debug' to build the debug version.
  149 +"""
  150 + + opts.GenerateHelpText(env))
  151 +
  152 +print 'BUILD_TARGETS is', map(str, BUILD_TARGETS)
... ...
anubis_dev/compiler/proj/linux/Makefile
... ... @@ -2,8 +2,7 @@
2 2 # make file for the Anubis Compiler
3 3 #
4 4 #
5   -# Author: Alain Prouté
6   -#
  5 +# Author: Alain Prout�#
7 6  
8 7 #
9 8 # Some directories (the make file is in 'anubis_dev/compiler/proj/linux')
... ... @@ -162,8 +161,8 @@ $(SRCDIR)/grammar.tab.c $(SRCDIR)/grammar.tab.h grammar.output: $(SRCDIR)/gramma
162 161 #
163 162 # Making the lexer
164 163 #
165   -$(SRCDIR)/lex.yy.c: $(SRCDIR)/lexer.y $(SRCDIR)/grammar.tab.h $(SRCDIR)/compil.h
166   - cd $(SRCDIR) && flex lexer.y
  164 +$(SRCDIR)/lex.yy.c: $(SRCDIR)/lexer.l $(SRCDIR)/grammar.tab.h $(SRCDIR)/compil.h
  165 + cd $(SRCDIR) && flex lexer.l
167 166  
168 167 #
169 168 # predef.c depends on (and #includes) the file predef.aux
... ...
anubis_dev/compiler/src/lex.yy.c
1 1  
2   -#line 3 "lex.yy.c"
  2 +#line 3 "<stdout>"
3 3  
4 4 #define YY_INT_ALIGNED short int
5 5  
... ... @@ -134,6 +134,10 @@ typedef unsigned int flex_uint32_t;
134 134 #define YY_BUF_SIZE 16384
135 135 #endif
136 136  
  137 +/* The state buf must be large enough to hold one state per character in the main buffer.
  138 + */
  139 +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
  140 +
137 141 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
138 142 #define YY_TYPEDEF_YY_BUFFER_STATE
139 143 typedef struct yy_buffer_state *YY_BUFFER_STATE;
... ... @@ -323,7 +327,7 @@ void yyfree (void * );
323 327  
324 328 /* Begin user sect3 */
325 329  
326   -#define yywrap() 1
  330 +#define yywrap(n) 1
327 331 #define YY_SKIP_YYWRAP
328 332  
329 333 typedef unsigned char YY_CHAR;
... ... @@ -333,9 +337,6 @@ FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
333 337 typedef int yy_state_type;
334 338  
335 339 extern int yylineno;
336   -
337   -int yylineno = 1;
338   -
339 340 extern char *yytext;
340 341 #define yytext_ptr yytext
341 342  
... ... @@ -932,7 +933,7 @@ int yy_flex_debug = 0;
932 933 #define YY_MORE_ADJ 0
933 934 #define YY_RESTORE_YY_MORE_OFFSET
934 935 char *yytext;
935   -#line 1 "lexer.y"
  936 +#line 1 "src/lexer.l"
936 937 /* lexer.y *******************************************************************************
937 938  
938 939 Anubis 1.
... ... @@ -942,7 +943,7 @@ char *yytext;
942 943 /*
943 944 This LEX/FLEX file is the lexer for the Anubis compiler.
944 945 */
945   -#line 14 "lexer.y"
  946 +#line 14 "src/lexer.l"
946 947 #include <stdio.h>
947 948 #include <string.h>
948 949 #include <stdlib.h>
... ... @@ -1527,7 +1528,7 @@ static char *rec_name(char *s, int del)
1527 1528 /* state STRTL is used when a string is too long. */
1528 1529 /* states CONF and CONFCOM are used to read 'compiler.conf'.*/
1529 1530 /* the lexer ----------------------------------------------------------------------------*/
1530   -#line 1531 "lex.yy.c"
  1531 +#line 1532 "<stdout>"
1531 1532  
1532 1533 #define INITIAL 0
1533 1534 #define COM 1
... ... @@ -1538,13 +1539,11 @@ static char *rec_name(char *s, int del)
1538 1539 #define CONF 6
1539 1540 #define CONFCOM 7
1540 1541  
1541   -#ifndef YY_NO_UNISTD_H
1542 1542 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1543 1543 * down here because we want the user's section 1 to have been scanned first.
1544 1544 * The user has a chance to override it with an option.
1545 1545 */
1546 1546 #include <unistd.h>
1547   -#endif
1548 1547  
1549 1548 #ifndef YY_EXTRA_TYPE
1550 1549 #define YY_EXTRA_TYPE void *
... ... @@ -1688,9 +1687,9 @@ YY_DECL
1688 1687 register char *yy_cp, *yy_bp;
1689 1688 register int yy_act;
1690 1689  
1691   -#line 608 "lexer.y"
  1690 +#line 608 "src/lexer.l"
1692 1691  
1693   -#line 1694 "lex.yy.c"
  1692 +#line 1693 "<stdout>"
1694 1693  
1695 1694 if ( (yy_init) )
1696 1695 {
... ... @@ -1776,28 +1775,28 @@ do_action: /* This label is used only to access EOF actions. */
1776 1775  
1777 1776 case 1:
1778 1777 YY_RULE_SETUP
1779   -#line 609 "lexer.y"
  1778 +#line 609 "src/lexer.l"
1780 1779 { comlevel = 1; BEGIN COM; }
1781 1780 YY_BREAK
1782 1781 case 2:
1783 1782 YY_RULE_SETUP
1784   -#line 610 "lexer.y"
  1783 +#line 610 "src/lexer.l"
1785 1784 { comlevel++; }
1786 1785 YY_BREAK
1787 1786 case 3:
1788 1787 YY_RULE_SETUP
1789   -#line 611 "lexer.y"
  1788 +#line 611 "src/lexer.l"
1790 1789 { comlevel--; if (!comlevel) { BEGIN PAR; } }
1791 1790 YY_BREAK
1792 1791 case 4:
1793 1792 /* rule 4 can match eol */
1794 1793 YY_RULE_SETUP
1795   -#line 612 "lexer.y"
  1794 +#line 612 "src/lexer.l"
1796 1795 { }
1797 1796 YY_BREAK
1798 1797 case 5:
1799 1798 YY_RULE_SETUP
1800   -#line 613 "lexer.y"
  1799 +#line 613 "src/lexer.l"
1801 1800 { }
1802 1801 YY_BREAK
1803 1802 case 6:
... ... @@ -1805,17 +1804,17 @@ case 6:
1805 1804 (yy_c_buf_p) = yy_cp -= 1;
1806 1805 YY_DO_BEFORE_ACTION; /* set up yytext again */
1807 1806 YY_RULE_SETUP
1808   -#line 614 "lexer.y"
  1807 +#line 614 "src/lexer.l"
1809 1808 { /* dbl_slash_comment(yytext+2); */ }
1810 1809 YY_BREAK
1811 1810 case 7:
1812 1811 YY_RULE_SETUP
1813   -#line 615 "lexer.y"
  1812 +#line 615 "src/lexer.l"
1814 1813 { BEGIN STR; str_index = 0; }
1815 1814 YY_BREAK
1816 1815 case 8:
1817 1816 YY_RULE_SETUP
1818   -#line 616 "lexer.y"
  1817 +#line 616 "src/lexer.l"
1819 1818 { BEGIN PAR;
1820 1819 str_buf[str_index] = 0;
1821 1820 yylval.expr = new_string(str_buf);
... ... @@ -1823,162 +1822,162 @@ YY_RULE_SETUP
1823 1822 YY_BREAK
1824 1823 case 9:
1825 1824 YY_RULE_SETUP
1826   -#line 620 "lexer.y"
  1825 +#line 620 "src/lexer.l"
1827 1826 { store_str_char('\"'); }
1828 1827 YY_BREAK
1829 1828 case 10:
1830 1829 YY_RULE_SETUP
1831   -#line 621 "lexer.y"
  1830 +#line 621 "src/lexer.l"
1832 1831 { store_str_char('\n'); }
1833 1832 YY_BREAK
1834 1833 case 11:
1835 1834 YY_RULE_SETUP
1836   -#line 622 "lexer.y"
  1835 +#line 622 "src/lexer.l"
1837 1836 { store_str_char('\r'); }
1838 1837 YY_BREAK
1839 1838 case 12:
1840 1839 YY_RULE_SETUP
1841   -#line 623 "lexer.y"
  1840 +#line 623 "src/lexer.l"
1842 1841 { store_str_char('\t'); }
1843 1842 YY_BREAK
1844 1843 case 13:
1845 1844 YY_RULE_SETUP
1846   -#line 624 "lexer.y"
  1845 +#line 624 "src/lexer.l"
1847 1846 { store_str_char('\\'); }
1848 1847 YY_BREAK
1849 1848 case 14:
1850 1849 /* rule 14 can match eol */
1851 1850 YY_RULE_SETUP
1852   -#line 625 "lexer.y"
  1851 +#line 625 "src/lexer.l"
1853 1852 { store_str_char('\n'); }
1854 1853 YY_BREAK
1855 1854 case 15:
1856 1855 YY_RULE_SETUP
1857   -#line 626 "lexer.y"
  1856 +#line 626 "src/lexer.l"
1858 1857 { store_str_char(yytext[0]); }
1859 1858 YY_BREAK
1860 1859 case 16:
1861 1860 YY_RULE_SETUP
1862   -#line 627 "lexer.y"
  1861 +#line 627 "src/lexer.l"
1863 1862 { BEGIN PAR; }
1864 1863 YY_BREAK
1865 1864 case 17:
1866 1865 /* rule 17 can match eol */
1867 1866 YY_RULE_SETUP
1868   -#line 628 "lexer.y"
  1867 +#line 628 "src/lexer.l"
1869 1868 { }
1870 1869 YY_BREAK
1871 1870 case 18:
1872 1871 YY_RULE_SETUP
1873   -#line 629 "lexer.y"
  1872 +#line 629 "src/lexer.l"
1874 1873 { }
1875 1874 YY_BREAK
1876 1875 case 19:
1877 1876 YY_RULE_SETUP
1878   -#line 630 "lexer.y"
  1877 +#line 630 "src/lexer.l"
1879 1878 { yylval.integer = (int)(unsigned char)yytext[1]; return yy__char; }
1880 1879 YY_BREAK
1881 1880 case 20:
1882 1881 YY_RULE_SETUP
1883   -#line 631 "lexer.y"
  1882 +#line 631 "src/lexer.l"
1884 1883 { yylval.integer = (int)'\n'; return yy__char; }
1885 1884 YY_BREAK
1886 1885 case 21:
1887 1886 YY_RULE_SETUP
1888   -#line 632 "lexer.y"
  1887 +#line 632 "src/lexer.l"
1889 1888 { yylval.integer = (int)'\r'; return yy__char; }
1890 1889 YY_BREAK
1891 1890 case 22:
1892 1891 YY_RULE_SETUP
1893   -#line 633 "lexer.y"
  1892 +#line 633 "src/lexer.l"
1894 1893 { yylval.integer = (int)'\t'; return yy__char; }
1895 1894 YY_BREAK
1896 1895 case 23:
1897 1896 YY_RULE_SETUP
1898   -#line 634 "lexer.y"
  1897 +#line 634 "src/lexer.l"
1899 1898 { yylval.integer = (int)'\"'; return yy__char; }
1900 1899 YY_BREAK
1901 1900 case 24:
1902 1901 YY_RULE_SETUP
1903   -#line 635 "lexer.y"
  1902 +#line 635 "src/lexer.l"
1904 1903 { yylval.integer = (int)'\\'; return yy__char; }
1905 1904 YY_BREAK
1906 1905 case 25:
1907 1906 YY_RULE_SETUP
1908   -#line 636 "lexer.y"
  1907 +#line 636 "src/lexer.l"
1909 1908 { yylval.integer = (int)'\''; return yy__char; }
1910 1909 YY_BREAK
1911 1910 case 26:
1912 1911 YY_RULE_SETUP
1913   -#line 637 "lexer.y"
  1912 +#line 637 "src/lexer.l"
1914 1913 { yylval.expr = linecol(); return yy__lpar; }
1915 1914 YY_BREAK
1916 1915 case 27:
1917 1916 YY_RULE_SETUP
1918   -#line 638 "lexer.y"
  1917 +#line 638 "src/lexer.l"
1919 1918 { yylval.expr = linecol(); return yy__rpar; }
1920 1919 YY_BREAK
1921 1920 case 28:
1922 1921 /* rule 28 can match eol */
1923 1922 YY_RULE_SETUP
1924   -#line 639 "lexer.y"
  1923 +#line 639 "src/lexer.l"
1925 1924 { yylval.expr = linecol(); return yy__rpar; }
1926 1925 YY_BREAK
1927 1926 case 29:
1928 1927 YY_RULE_SETUP
1929   -#line 640 "lexer.y"
  1928 +#line 640 "src/lexer.l"
1930 1929 { yylval.expr = linecol(); return yy__lbrace; }
1931 1930 YY_BREAK
1932 1931 case 30:
1933 1932 YY_RULE_SETUP
1934   -#line 641 "lexer.y"
  1933 +#line 641 "src/lexer.l"
1935 1934 { yylval.expr = linecol(); return yy__rbrace; }
1936 1935 YY_BREAK
1937 1936 case 31:
1938 1937 /* rule 31 can match eol */
1939 1938 YY_RULE_SETUP
1940   -#line 642 "lexer.y"
  1939 +#line 642 "src/lexer.l"
1941 1940 { yylval.expr = linecol(); return yy__rbrace; }
1942 1941 YY_BREAK
1943 1942 case 32:
1944 1943 YY_RULE_SETUP
1945   -#line 643 "lexer.y"
  1944 +#line 643 "src/lexer.l"
1946 1945 { yylval.expr = linecol(); return yy__lbracket; }
1947 1946 YY_BREAK
1948 1947 case 33:
1949 1948 YY_RULE_SETUP
1950   -#line 644 "lexer.y"
  1949 +#line 644 "src/lexer.l"
1951 1950 { yylval.expr = linecol(); return yy__rbracket; }
1952 1951 YY_BREAK
1953 1952 case 34:
1954 1953 /* rule 34 can match eol */
1955 1954 YY_RULE_SETUP
1956   -#line 645 "lexer.y"
  1955 +#line 645 "src/lexer.l"
1957 1956 { yylval.expr = linecol(); return yy__rbracket; }
1958 1957 YY_BREAK
1959 1958 case 35:
1960 1959 YY_RULE_SETUP
1961   -#line 646 "lexer.y"
  1960 +#line 646 "src/lexer.l"
1962 1961 { yylval.expr = linecol(); return yy__colon; }
1963 1962 YY_BREAK
1964 1963 case 36:
1965 1964 YY_RULE_SETUP
1966   -#line 647 "lexer.y"
  1965 +#line 647 "src/lexer.l"
1967 1966 { yylval.expr = linecol(); return yy__semicolon; }
1968 1967 YY_BREAK
1969 1968 case 37:
1970 1969 YY_RULE_SETUP
1971   -#line 648 "lexer.y"
  1970 +#line 648 "src/lexer.l"
1972 1971 { yylval.expr = linecol(); return yy__minus; }
1973 1972 YY_BREAK
1974 1973 case 38:
1975 1974 YY_RULE_SETUP
1976   -#line 649 "lexer.y"
  1975 +#line 649 "src/lexer.l"
1977 1976 { yylval.expr = linecol(); return yy__dot; }
1978 1977 YY_BREAK
1979 1978 case 39:
1980 1979 YY_RULE_SETUP
1981   -#line 650 "lexer.y"
  1980 +#line 650 "src/lexer.l"
1982 1981 { yylval.expr = linecol(); return yy__enddot; }
1983 1982 YY_BREAK
1984 1983 case 40:
... ... @@ -1986,474 +1985,474 @@ case 40:
1986 1985 (yy_c_buf_p) = yy_cp -= 1;
1987 1986 YY_DO_BEFORE_ACTION; /* set up yytext again */
1988 1987 YY_RULE_SETUP
1989   -#line 651 "lexer.y"
  1988 +#line 651 "src/lexer.l"
1990 1989 { yylval.expr = linecol(); return yy__enddot; }
1991 1990 YY_BREAK
1992 1991 case 41:
1993 1992 YY_RULE_SETUP
1994   -#line 652 "lexer.y"
  1993 +#line 652 "src/lexer.l"
1995 1994 { yylval.expr = linecol(); return yy__dotdot; }
1996 1995 YY_BREAK
1997 1996 case 42:
1998 1997 YY_RULE_SETUP
1999   -#line 653 "lexer.y"
  1998 +#line 653 "src/lexer.l"
2000 1999 { yylval.expr = linecol(); return yy__dotsup; }
2001 2000 YY_BREAK
2002 2001 case 43:
2003 2002 YY_RULE_SETUP
2004   -#line 654 "lexer.y"
  2003 +#line 654 "src/lexer.l"
2005 2004 { yylval.expr = linecol(); return yy__percent; }
2006 2005 YY_BREAK
2007 2006 case 44:
2008 2007 YY_RULE_SETUP
2009   -#line 655 "lexer.y"
  2008 +#line 655 "src/lexer.l"
2010 2009 { yylval.expr = linecol(); return yy__comma; }
2011 2010 YY_BREAK
2012 2011 case 45:
2013 2012 YY_RULE_SETUP
2014   -#line 656 "lexer.y"
  2013 +#line 656 "src/lexer.l"
2015 2014 { yylval.expr = linecol(); return yy__tilde; }
2016 2015 YY_BREAK
2017 2016 case 46:
2018 2017 YY_RULE_SETUP
2019   -#line 657 "lexer.y"
  2018 +#line 657 "src/lexer.l"
2020 2019 { yylval.expr = linecol(); return yy__equals; }
2021 2020 YY_BREAK
2022 2021 case 47:
2023 2022 YY_RULE_SETUP
2024   -#line 658 "lexer.y"
  2023 +#line 658 "src/lexer.l"
2025 2024 { yylval.expr = linecol(); return yy__non_equal; }
2026 2025 YY_BREAK
2027 2026 case 48:
2028 2027 YY_RULE_SETUP
2029   -#line 659 "lexer.y"
  2028 +#line 659 "src/lexer.l"
2030 2029 { yylval.expr = linecol(); return yy__exclam_equal; }
2031 2030 YY_BREAK
2032 2031 case 49:
2033 2032 YY_RULE_SETUP
2034   -#line 660 "lexer.y"
  2033 +#line 660 "src/lexer.l"
2035 2034 { yylval.expr = linecol(); return yy__plus; }
2036 2035 YY_BREAK
2037 2036 case 50:
2038 2037 YY_RULE_SETUP
2039   -#line 661 "lexer.y"
  2038 +#line 661 "src/lexer.l"
2040 2039 { yylval.expr = linecol(); return yy__star; }
2041 2040 YY_BREAK
2042 2041 case 51:
2043 2042 YY_RULE_SETUP
2044   -#line 662 "lexer.y"
  2043 +#line 662 "src/lexer.l"
2045 2044 { yylval.expr = linecol(); return yy__carret; }
2046 2045 YY_BREAK
2047 2046 case 52:
2048 2047 YY_RULE_SETUP
2049   -#line 663 "lexer.y"
  2048 +#line 663 "src/lexer.l"
2050 2049 { yylval.expr = linecol(); return yy__ampersand; }
2051 2050 YY_BREAK
2052 2051 case 53:
2053 2052 YY_RULE_SETUP
2054   -#line 664 "lexer.y"
  2053 +#line 664 "src/lexer.l"
2055 2054 { yylval.expr = linecol(); return yy__vbar; }
2056 2055 YY_BREAK
2057 2056 case 54:
2058 2057 YY_RULE_SETUP
2059   -#line 665 "lexer.y"
  2058 +#line 665 "src/lexer.l"
2060 2059 { yylval.expr = linecol(); return yy__right_shift; }
2061 2060 YY_BREAK
2062 2061 case 55:
2063 2062 YY_RULE_SETUP
2064   -#line 666 "lexer.y"
  2063 +#line 666 "src/lexer.l"
2065 2064 { yylval.expr = linecol(); return yy__left_shift; }
2066 2065 YY_BREAK
2067 2066 case 56:
2068 2067 YY_RULE_SETUP
2069   -#line 667 "lexer.y"
  2068 +#line 667 "src/lexer.l"
2070 2069 { yylval.expr = linecol(); return yy__implies; }
2071 2070 YY_BREAK
2072 2071 case 57:
2073 2072 YY_RULE_SETUP
2074   -#line 668 "lexer.y"
  2073 +#line 668 "src/lexer.l"
2075 2074 { yylval.expr = linecol(); return yy__forall; }
2076 2075 YY_BREAK
2077 2076 case 58:
2078 2077 YY_RULE_SETUP
2079   -#line 669 "lexer.y"
  2078 +#line 669 "src/lexer.l"
2080 2079 { yylval.expr = linecol(); return yy__exists; }
2081 2080 YY_BREAK
2082 2081 case 59:
2083 2082 YY_RULE_SETUP
2084   -#line 670 "lexer.y"
  2083 +#line 670 "src/lexer.l"
2085 2084 { yylval.expr = linecol(); return yy__exists_unique; }
2086 2085 YY_BREAK
2087 2086 case 60:
2088 2087 YY_RULE_SETUP
2089   -#line 671 "lexer.y"
  2088 +#line 671 "src/lexer.l"
2090 2089 { yylval.expr = linecol(); return yy__description; }
2091 2090 YY_BREAK
2092 2091 case 61:
2093 2092 YY_RULE_SETUP
2094   -#line 672 "lexer.y"
  2093 +#line 672 "src/lexer.l"
2095 2094 { yylval.expr = linecol(); return yy__slash; }
2096 2095 YY_BREAK
2097 2096 case 62:
2098 2097 YY_RULE_SETUP
2099   -#line 673 "lexer.y"
  2098 +#line 673 "src/lexer.l"
2100 2099 { yylval.expr = linecol(); return yy__mod; }
2101 2100 YY_BREAK
2102 2101 case 63:
2103 2102 YY_RULE_SETUP
2104   -#line 674 "lexer.y"
  2103 +#line 674 "src/lexer.l"
2105 2104 { yylval.expr = linecol(); return yy__less; }
2106 2105 YY_BREAK
2107 2106 case 64:
2108 2107 YY_RULE_SETUP
2109   -#line 675 "lexer.y"
  2108 +#line 675 "src/lexer.l"
2110 2109 { yylval.expr = linecol(); return yy__greater; }
2111 2110 YY_BREAK
2112 2111 case 65:
2113 2112 YY_RULE_SETUP
2114   -#line 676 "lexer.y"
  2113 +#line 676 "src/lexer.l"
2115 2114 { yylval.expr = linecol(); return yy__lessoreq; }
2116 2115 YY_BREAK
2117 2116 case 66:
2118 2117 YY_RULE_SETUP
2119   -#line 677 "lexer.y"
  2118 +#line 677 "src/lexer.l"
2120 2119 { yylval.expr = linecol(); return yy__greateroreq; }
2121 2120 YY_BREAK
2122 2121 case 67:
2123 2122 YY_RULE_SETUP
2124   -#line 678 "lexer.y"
  2123 +#line 678 "src/lexer.l"
2125 2124 { yylval.expr = linecol(); return yy__write; }
2126 2125 YY_BREAK
2127 2126 case 68:
2128 2127 YY_RULE_SETUP
2129   -#line 679 "lexer.y"
  2128 +#line 679 "src/lexer.l"
2130 2129 { yylval.expr = linecol(); return yy__exchange; }
2131 2130 YY_BREAK
2132 2131 case 69:
2133 2132 YY_RULE_SETUP
2134   -#line 680 "lexer.y"
  2133 +#line 680 "src/lexer.l"
2135 2134 { yylval.expr = linecol(); return yy__arrow; }
2136 2135 YY_BREAK
2137 2136 case 70:
2138 2137 YY_RULE_SETUP
2139   -#line 681 "lexer.y"
  2138 +#line 681 "src/lexer.l"
2140 2139 { yylval.expr = linecol(); return yy__arroww; }
2141 2140 YY_BREAK
2142 2141 case 71:
2143 2142 YY_RULE_SETUP
2144   -#line 682 "lexer.y"
  2143 +#line 682 "src/lexer.l"
2145 2144 { yylval.expr = linecol(); return yy__mapsto; }
2146 2145 YY_BREAK
2147 2146 case 72:
2148 2147 YY_RULE_SETUP
2149   -#line 683 "lexer.y"
  2148 +#line 683 "src/lexer.l"
2150 2149 { yylval.expr = linecol(); return yy__mapstoo; }
2151 2150 YY_BREAK
2152 2151 case 73:
2153 2152 YY_RULE_SETUP
2154   -#line 684 "lexer.y"
  2153 +#line 684 "src/lexer.l"
2155 2154 { yylval.expr = linecol(); return yy__dots; }
2156 2155 YY_BREAK
2157 2156 case 74:
2158 2157 /* rule 74 can match eol */
2159 2158 YY_RULE_SETUP
2160   -#line 685 "lexer.y"
  2159 +#line 685 "src/lexer.l"
2161 2160 { yylval.expr = linecol(); return yy__rpar_arrow; }
2162 2161 YY_BREAK
2163 2162 case 75:
2164 2163 YY_RULE_SETUP
2165   -#line 686 "lexer.y"
  2164 +#line 686 "src/lexer.l"
2166 2165 { yylval.expr = linecol(); return yy__type_String; }
2167 2166 YY_BREAK
2168 2167 case 76:
2169 2168 YY_RULE_SETUP
2170   -#line 687 "lexer.y"
  2169 +#line 687 "src/lexer.l"
2171 2170 { yylval.expr = linecol(); return yy__type_ByteArray; }
2172 2171 YY_BREAK
2173 2172 case 77:
2174 2173 YY_RULE_SETUP
2175   -#line 688 "lexer.y"
  2174 +#line 688 "src/lexer.l"
2176 2175 { yylval.expr = linecol(); return yy__type_Int32; }
2177 2176 YY_BREAK
2178 2177 case 78:
2179 2178 YY_RULE_SETUP
2180   -#line 689 "lexer.y"
  2179 +#line 689 "src/lexer.l"
2181 2180 { yylval.expr = linecol(); return yy__type_Omega; }
2182 2181 YY_BREAK
2183 2182 case 79:
2184 2183 YY_RULE_SETUP
2185   -#line 690 "lexer.y"
  2184 +#line 690 "src/lexer.l"
2186 2185 { yylval.expr = linecol(); return yy__bit_width; }
2187 2186 YY_BREAK
2188 2187 case 80:
2189 2188 YY_RULE_SETUP
2190   -#line 691 "lexer.y"
  2189 +#line 691 "src/lexer.l"
2191 2190 { yylval.expr = linecol(); return yy__indirect; }
2192 2191 YY_BREAK
2193 2192 case 81:
2194 2193 YY_RULE_SETUP
2195   -#line 692 "lexer.y"
  2194 +#line 692 "src/lexer.l"
2196 2195 { if (reading_predef)
2197 2196 { yylval.expr = linecol(); return yy__vcopy; }
2198 2197 else lexical_error(); }
2199 2198 YY_BREAK
2200 2199 case 82:
2201 2200 YY_RULE_SETUP
2202   -#line 695 "lexer.y"
  2201 +#line 695 "src/lexer.l"
2203 2202 { if (reading_predef)
2204 2203 { yylval.expr = linecol(); return yy__load_module; }
2205 2204 else lexical_error(); }
2206 2205 YY_BREAK
2207 2206 case 83:
2208 2207 YY_RULE_SETUP
2209   -#line 698 "lexer.y"
  2208 +#line 698 "src/lexer.l"
2210 2209 { if (reading_predef)
2211 2210 { yylval.expr = linecol(); return yy__serialize; }
2212 2211 else lexical_error(); }
2213 2212 YY_BREAK
2214 2213 case 84:
2215 2214 YY_RULE_SETUP
2216   -#line 701 "lexer.y"
  2215 +#line 701 "src/lexer.l"
2217 2216 { if (reading_predef)
2218 2217 { yylval.expr = linecol(); return yy__unserialize; }
2219 2218 else lexical_error(); }
2220 2219 YY_BREAK
2221 2220 case 85:
2222 2221 YY_RULE_SETUP
2223   -#line 704 "lexer.y"
  2222 +#line 704 "src/lexer.l"
2224 2223 { yylval.expr = linecol(); return yy__type_Float; }
2225 2224 YY_BREAK
2226 2225 case 86:
2227 2226 YY_RULE_SETUP
2228   -#line 705 "lexer.y"
  2227 +#line 705 "src/lexer.l"
2229 2228 { if (reading_predef)
2230 2229 { yylval.expr = linecol(); return yy__type_Listener; }
2231 2230 else lexical_error(); }
2232 2231 YY_BREAK
2233 2232 case 87:
2234 2233 YY_RULE_SETUP
2235   -#line 708 "lexer.y"
  2234 +#line 708 "src/lexer.l"
2236 2235 { if (reading_predef)
2237 2236 { yylval.expr = linecol(); return yy__StructPtr; }
2238 2237 else lexical_error(); }
2239 2238 YY_BREAK
2240 2239 case 88:
2241 2240 YY_RULE_SETUP
2242   -#line 711 "lexer.y"
  2241 +#line 711 "src/lexer.l"
2243 2242 { if (reading_predef)
2244 2243 { yylval.expr = linecol(); return yy__avm; }
2245 2244 else lexical_error(); }
2246 2245 YY_BREAK
2247 2246 case 89:
2248 2247 YY_RULE_SETUP
2249   -#line 714 "lexer.y"
  2248 +#line 714 "src/lexer.l"
2250 2249 { yylval.expr = linecol(); return yy__if; }
2251 2250 YY_BREAK
2252 2251 case 90:
2253 2252 YY_RULE_SETUP
2254   -#line 715 "lexer.y"
  2253 +#line 715 "src/lexer.l"
2255 2254 { yylval.expr = linecol(); return yy__proof; }
2256 2255 YY_BREAK
2257 2256 case 91:
2258 2257 YY_RULE_SETUP
2259   -#line 716 "lexer.y"
  2258 +#line 716 "src/lexer.l"
2260 2259 { yylval.expr = linecol(); return yy__type_Proof; }
2261 2260 YY_BREAK
2262 2261 case 92:
2263 2262 YY_RULE_SETUP
2264   -#line 717 "lexer.y"
  2263 +#line 717 "src/lexer.l"
2265 2264 { yylval.expr = linecol(); return yy__since; }
2266 2265 YY_BREAK
2267 2266 case 93:
2268 2267 YY_RULE_SETUP
2269   -#line 718 "lexer.y"
  2268 +#line 718 "src/lexer.l"
2270 2269 { return yy__is; }
2271 2270 YY_BREAK
2272 2271 case 94:
2273 2272 YY_RULE_SETUP
2274   -#line 719 "lexer.y"
  2273 +#line 719 "src/lexer.l"
2275 2274 { yylval.expr = linecol(); return yy__then; }
2276 2275 YY_BREAK
2277 2276 case 95:
2278 2277 YY_RULE_SETUP
2279   -#line 720 "lexer.y"
  2278 +#line 720 "src/lexer.l"
2280 2279 { yylval.expr = linecol(); return yy__alert; }
2281 2280 YY_BREAK
2282 2281 case 96:
2283 2282 YY_RULE_SETUP
2284   -#line 721 "lexer.y"
  2283 +#line 721 "src/lexer.l"
2285 2284 { yylval.expr = linecol(); return yy__protect; }
2286 2285 YY_BREAK
2287 2286 case 97:
2288 2287 YY_RULE_SETUP
2289   -#line 722 "lexer.y"
  2288 +#line 722 "src/lexer.l"
2290 2289 { yylval.expr = linecol(); return yy__lock; }
2291 2290 YY_BREAK
2292 2291 case 98:
2293 2292 YY_RULE_SETUP
2294   -#line 723 "lexer.y"
  2293 +#line 723 "src/lexer.l"
2295 2294 { yylval.expr = linecol(); return yy__succeeds; }
2296 2295 YY_BREAK
2297 2296 case 99:
2298 2297 /* rule 99 can match eol */
2299 2298 YY_RULE_SETUP
2300   -#line 724 "lexer.y"
  2299 +#line 724 "src/lexer.l"
2301 2300 { yylval.expr = linecol(); return yy__succeeds_as; }
2302 2301 YY_BREAK
2303 2302 case 100:
2304 2303 /* rule 100 can match eol */
2305 2304 YY_RULE_SETUP
2306   -#line 725 "lexer.y"
  2305 +#line 725 "src/lexer.l"
2307 2306 { yylval.expr = linecol(); return yy__wait_for; }
2308 2307 YY_BREAK
2309 2308 case 101:
2310 2309 /* rule 101 can match eol */
2311 2310 YY_RULE_SETUP
2312   -#line 726 "lexer.y"
  2311 +#line 726 "src/lexer.l"
2313 2312 { yylval.expr = linecol(); return yy__checking_every; }
2314 2313 YY_BREAK
2315 2314 case 102:
2316 2315 YY_RULE_SETUP
2317   -#line 727 "lexer.y"
  2316 +#line 727 "src/lexer.l"
2318 2317 { yylval.expr = linecol(); return yy__delegate; }
2319 2318 YY_BREAK
2320 2319 case 103:
2321 2320 YY_RULE_SETUP
2322   -#line 728 "lexer.y"
  2321 +#line 728 "src/lexer.l"
2323 2322 { yylval.expr = linecol(); return yy__else; }
2324 2323 YY_BREAK
2325 2324 case 104:
2326 2325 YY_RULE_SETUP
2327   -#line 729 "lexer.y"
  2326 +#line 729 "src/lexer.l"
2328 2327 { yylval.expr = linecol(); return yy__with; }
2329 2328 YY_BREAK
2330 2329 case 105:
2331 2330 YY_RULE_SETUP
2332   -#line 730 "lexer.y"
  2331 +#line 730 "src/lexer.l"
2333 2332 { yylval.expr = linecol(); return yy__alt_number; }
2334 2333 YY_BREAK
2335 2334 case 106:
2336 2335 YY_RULE_SETUP
2337   -#line 731 "lexer.y"
  2336 +#line 731 "src/lexer.l"
2338 2337 { yylval.expr = linecol(); return yy__RAddr; }
2339 2338 YY_BREAK
2340 2339 case 107:
2341 2340 YY_RULE_SETUP
2342   -#line 732 "lexer.y"
  2341 +#line 732 "src/lexer.l"
2343 2342 { yylval.expr = linecol(); return yy__WAddr; }
2344 2343 YY_BREAK
2345 2344 case 108:
2346 2345 YY_RULE_SETUP
2347   -#line 733 "lexer.y"
  2346 +#line 733 "src/lexer.l"
2348 2347 { yylval.expr = linecol(); return yy__RWAddr; }
2349 2348 YY_BREAK
2350 2349 case 109:
2351 2350 YY_RULE_SETUP
2352   -#line 734 "lexer.y"
  2351 +#line 734 "src/lexer.l"
2353 2352 { yylval.expr = linecol(); return yy__GAddr; }
2354 2353 YY_BREAK
2355 2354 case 110:
2356 2355 YY_RULE_SETUP
2357   -#line 735 "lexer.y"
  2356 +#line 735 "src/lexer.l"
2358 2357 { yylval.expr = linecol(); return yy__Var; }
2359 2358 YY_BREAK
2360 2359 case 111:
2361 2360 YY_RULE_SETUP
2362   -#line 736 "lexer.y"
  2361 +#line 736 "src/lexer.l"
2363 2362 { yylval.expr = linecol(); return yy__MVar; }
2364 2363 YY_BREAK
2365 2364 case 112:
2366 2365 /* rule 112 can match eol */
2367 2366 YY_RULE_SETUP
2368   -#line 737 "lexer.y"
  2367 +#line 737 "src/lexer.l"
2369 2368 { yylval.expr = linecol(); return yy__connect_to_file; }
2370 2369 YY_BREAK
2371 2370 case 113:
2372 2371 /* rule 113 can match eol */
2373 2372 YY_RULE_SETUP
2374   -#line 738 "lexer.y"
  2373 +#line 738 "src/lexer.l"
2375 2374 { yylval.expr = linecol(); return yy__connect_to_IP; }
2376 2375 YY_BREAK
2377 2376 case 114:
2378 2377 YY_RULE_SETUP
2379   -#line 739 "lexer.y"
  2378 +#line 739 "src/lexer.l"
2380 2379 { yylval.expr = linecol(); return yy__debug_avm; }
2381 2380 YY_BREAK
2382 2381 case 115:
2383 2382 YY_RULE_SETUP
2384   -#line 740 "lexer.y"
  2383 +#line 740 "src/lexer.l"
2385 2384 { yylval.expr = linecol(); return yy__terminal; }
2386 2385 YY_BREAK
2387 2386 case 116:
2388 2387 /* rule 116 can match eol */
2389 2388 YY_RULE_SETUP
2390   -#line 741 "lexer.y"
  2389 +#line 741 "src/lexer.l"
2391 2390 { yylval.expr = linecol(); return yy__we_have; }
2392 2391 YY_BREAK
2393 2392 case 117:
2394 2393 /* rule 117 can match eol */
2395 2394 YY_RULE_SETUP
2396   -#line 742 "lexer.y"
  2395 +#line 742 "src/lexer.l"
2397 2396 { yylval.expr = linecol();
2398 2397 return yy__enough; }
2399 2398 YY_BREAK
2400 2399 case 118:
2401 2400 YY_RULE_SETUP
2402   -#line 744 "lexer.y"
  2401 +#line 744 "src/lexer.l"
2403 2402 { yylval.expr = linecol(); return yy__let; }
2404 2403 YY_BREAK
2405 2404 case 119:
2406 2405 /* rule 119 can match eol */
2407 2406 YY_RULE_SETUP
2408   -#line 745 "lexer.y"
  2407 +#line 745 "src/lexer.l"
2409 2408 { yylval.expr = linecol(); return yy__assume; }
2410 2409 YY_BREAK
2411 2410 case 120:
2412 2411 YY_RULE_SETUP
2413   -#line 746 "lexer.y"
  2412 +#line 746 "src/lexer.l"
2414 2413 { yylval.expr = linecol(); return yy__hence; }
2415 2414 YY_BREAK
2416 2415 case 121:
2417 2416 YY_RULE_SETUP
2418   -#line 747 "lexer.y"
  2417 +#line 747 "src/lexer.l"
2419 2418 { yylval.expr = linecol(); return yy__indeed; }
2420 2419 YY_BREAK
2421 2420 case 122:
2422 2421 YY_RULE_SETUP
2423   -#line 748 "lexer.y"
  2422 +#line 748 "src/lexer.l"
2424 2423 { BEGIN CONF; return yy__stop_after; }
2425 2424 YY_BREAK
2426 2425 case 123:
2427 2426 YY_RULE_SETUP
2428   -#line 749 "lexer.y"
  2427 +#line 749 "src/lexer.l"
2429 2428 { BEGIN CONF; return yy__djed; }
2430 2429 YY_BREAK
2431 2430 case 124:
2432 2431 YY_RULE_SETUP
2433   -#line 750 "lexer.y"
  2432 +#line 750 "src/lexer.l"
2434 2433 { return yy__verbose; }
2435 2434 YY_BREAK
2436 2435 case 125:
2437 2436 YY_RULE_SETUP
2438   -#line 751 "lexer.y"
  2437 +#line 751 "src/lexer.l"
2439 2438 { fprintf(errfile,msgtext_syntax_error_in_conf_file[0],
2440 2439 my_anubis_directory,lineno); anb_exit(1); }
2441 2440 YY_BREAK
2442 2441 case 126:
2443 2442 /* rule 126 can match eol */
2444 2443 YY_RULE_SETUP
2445   -#line 753 "lexer.y"
  2444 +#line 753 "src/lexer.l"
2446 2445 { }
2447 2446 YY_BREAK
2448 2447 case 127:
2449 2448 YY_RULE_SETUP
2450   -#line 754 "lexer.y"
  2449 +#line 754 "src/lexer.l"
2451 2450 { }
2452 2451 YY_BREAK
2453 2452 case 128:
2454 2453 /* rule 128 can match eol */
2455 2454 YY_RULE_SETUP
2456   -#line 755 "lexer.y"
  2455 +#line 755 "src/lexer.l"
2457 2456 {
2458 2457 yytext[yyleng-1] = 0;
2459 2458 yylval.expr = new_string(yytext+1);
... ... @@ -2462,121 +2461,121 @@ YY_RULE_SETUP
2462 2461 YY_BREAK
2463 2462 case 129:
2464 2463 YY_RULE_SETUP
2465   -#line 760 "lexer.y"
  2464 +#line 760 "src/lexer.l"
2466 2465 {
2467 2466 yylval.expr = new_string(yytext);
2468 2467 return yy__conf_symbol; }
2469 2468 YY_BREAK
2470 2469 case 130:
2471 2470 YY_RULE_SETUP
2472   -#line 763 "lexer.y"
  2471 +#line 763 "src/lexer.l"
2473 2472 { yylval.expr = new_integer(atoi(yytext)); return yy__conf_int; }
2474 2473 YY_BREAK
2475 2474 case 131:
2476 2475 YY_RULE_SETUP
2477   -#line 764 "lexer.y"
  2476 +#line 764 "src/lexer.l"
2478 2477 { }
2479 2478 YY_BREAK
2480 2479 case 132:
2481 2480 /* rule 132 can match eol */
2482 2481 YY_RULE_SETUP
2483   -#line 765 "lexer.y"
  2482 +#line 765 "src/lexer.l"
2484 2483 { BEGIN CONFCOM; }
2485 2484 YY_BREAK
2486 2485 case 133:
2487 2486 YY_RULE_SETUP
2488   -#line 766 "lexer.y"
  2487 +#line 766 "src/lexer.l"
2489 2488 { BEGIN CONFCOM; fprintf(errfile,msgtext_syntax_error_in_conf_file[0],
2490 2489 my_anubis_directory,lineno); anb_exit(1); }
2491 2490 YY_BREAK
2492 2491 case 134:
2493 2492 /* rule 134 can match eol */
2494 2493 YY_RULE_SETUP
2495   -#line 768 "lexer.y"
  2494 +#line 768 "src/lexer.l"
2496 2495 { printf(yytext); fflush(stdout); }
2497 2496 YY_BREAK
2498 2497 case 135:
2499 2498 YY_RULE_SETUP
2500   -#line 769 "lexer.y"
  2499 +#line 769 "src/lexer.l"
2501 2500 { BEGIN PAR; par_seen = 1; current_par_line = lineno;
2502 2501 yylval.expr = linecol(); return yy__type; }
2503 2502 YY_BREAK
2504 2503 case 136:
2505 2504 /* rule 136 can match eol */
2506 2505 YY_RULE_SETUP
2507   -#line 771 "lexer.y"
  2506 +#line 771 "src/lexer.l"
2508 2507 { BEGIN PAR; par_seen = 1; current_par_line = lineno;
2509 2508 yylval.expr = linecol(); return yy__p_type; }
2510 2509 YY_BREAK
2511 2510 case 137:
2512 2511 YY_RULE_SETUP
2513   -#line 773 "lexer.y"
  2512 +#line 773 "src/lexer.l"
2514 2513 { BEGIN PAR; par_seen = 1; current_par_line = lineno;
2515 2514 yylval.expr = linecol(); return yy__variable; }
2516 2515 YY_BREAK
2517 2516 case 138:
2518 2517 /* rule 138 can match eol */
2519 2518 YY_RULE_SETUP
2520   -#line 775 "lexer.y"
  2519 +#line 775 "src/lexer.l"
2521 2520 { BEGIN PAR; par_seen = 1; current_par_line = lineno;
2522 2521 yylval.expr = linecol(); return yy__p_variable; }
2523 2522 YY_BREAK
2524 2523 case 139:
2525 2524 YY_RULE_SETUP
2526   -#line 777 "lexer.y"
  2525 +#line 777 "src/lexer.l"
2527 2526 { BEGIN PAR; par_seen = 1; current_par_line = lineno;
2528 2527 yylval.expr = linecol(); return yy__theorem; }
2529 2528 YY_BREAK
2530 2529 case 140:
2531 2530 /* rule 140 can match eol */
2532 2531 YY_RULE_SETUP
2533   -#line 779 "lexer.y"
  2532 +#line 779 "src/lexer.l"
2534 2533 { BEGIN PAR; par_seen = 1; current_par_line = lineno;
2535 2534 yylval.expr = linecol(); return yy__p_theorem; }
2536 2535 YY_BREAK
2537 2536 case 141:
2538 2537 YY_RULE_SETUP
2539   -#line 781 "lexer.y"
  2538 +#line 781 "src/lexer.l"
2540 2539 { BEGIN PAR; par_seen = 1; current_par_line = lineno;
2541 2540 yylval.expr = linecol(); return yy__operation; }
2542 2541 YY_BREAK
2543 2542 case 142:
2544 2543 /* rule 142 can match eol */
2545 2544 YY_RULE_SETUP
2546   -#line 783 "lexer.y"
  2545 +#line 783 "src/lexer.l"
2547 2546 { BEGIN PAR; par_seen = 1; current_par_line = lineno;
2548 2547 yylval.expr = linecol(); return yy__g_operation; }
2549 2548 YY_BREAK
2550 2549 case 143:
2551 2550 YY_RULE_SETUP
2552   -#line 785 "lexer.y"
  2551 +#line 785 "src/lexer.l"
2553 2552 { BEGIN PAR; par_seen = 1; current_par_line = lineno;
2554 2553 yylval.expr = linecol(); return yy__operation; }
2555 2554 YY_BREAK
2556 2555 case 144:
2557 2556 /* rule 144 can match eol */
2558 2557 YY_RULE_SETUP
2559   -#line 787 "lexer.y"
  2558 +#line 787 "src/lexer.l"
2560 2559 { BEGIN PAR; par_seen = 1; current_par_line = lineno;
2561 2560 yylval.expr = linecol(); return yy__g_operation; }
2562 2561 YY_BREAK
2563 2562 case 145:
2564 2563 /* rule 145 can match eol */
2565 2564 YY_RULE_SETUP
2566   -#line 789 "lexer.y"
  2565 +#line 789 "src/lexer.l"
2567 2566 { BEGIN PAR; par_seen = 1; current_par_line = lineno;
2568 2567 yylval.expr = linecol(); return yy__p_operation; }
2569 2568 YY_BREAK
2570 2569 case 146:
2571 2570 YY_RULE_SETUP
2572   -#line 791 "lexer.y"
  2571 +#line 791 "src/lexer.l"
2573 2572 { if (polish) { yylval.expr = linecol(); BEGIN INCL;
2574 2573 return yy__read; }
2575 2574 else if (!gindex /* && !errors */) { BEGIN INCL; } }
2576 2575 YY_BREAK
2577 2576 case 147:
2578 2577 YY_RULE_SETUP
2579   -#line 794 "lexer.y"
  2578 +#line 794 "src/lexer.l"
2580 2579 { is_relay_file[file_id] = 1;
2581 2580 //printf("'%s' is a relay file.\n",source_file_name);
2582 2581 if (polish) { yylval.expr = linecol(); BEGIN INCL;
... ... @@ -2585,13 +2584,13 @@ YY_RULE_SETUP
2585 2584 YY_BREAK
2586 2585 case 148:
2587 2586 YY_RULE_SETUP
2588   -#line 799 "lexer.y"
  2587 +#line 799 "src/lexer.l"
2589 2588 { BEGIN PAR; par_seen = 1; current_par_line = lineno;
2590 2589 yylval.expr = linecol(); return yy__C_constr_for; }
2591 2590 YY_BREAK
2592 2591 case 149:
2593 2592 YY_RULE_SETUP
2594   -#line 801 "lexer.y"
  2593 +#line 801 "src/lexer.l"
2595 2594 { if (polish)
2596 2595 {
2597 2596 yylval.expr = new_string(yytext);
... ... @@ -2664,12 +2663,12 @@ YY_RULE_SETUP
2664 2663 case 150:
2665 2664 /* rule 150 can match eol */
2666 2665 YY_RULE_SETUP
2667   -#line 869 "lexer.y"
  2666 +#line 869 "src/lexer.l"
2668 2667 { lexical_kwread_error(); }
2669 2668 YY_BREAK
2670 2669 case 151:
2671 2670 YY_RULE_SETUP
2672   -#line 870 "lexer.y"
  2671 +#line 870 "src/lexer.l"
2673 2672 { lexical_kwread_error(); }
2674 2673 YY_BREAK
2675 2674 case YY_STATE_EOF(INITIAL):
... ... @@ -2680,7 +2679,7 @@ case YY_STATE_EOF(STR):
2680 2679 case YY_STATE_EOF(STRTL):
2681 2680 case YY_STATE_EOF(CONF):
2682 2681 case YY_STATE_EOF(CONFCOM):
2683   -#line 871 "lexer.y"
  2682 +#line 871 "src/lexer.l"
2684 2683 {
2685 2684 if (include_stack_ptr == 0)
2686 2685 {
... ... @@ -2704,49 +2703,49 @@ case YY_STATE_EOF(CONFCOM):
2704 2703 YY_BREAK
2705 2704 case 152:
2706 2705 YY_RULE_SETUP
2707   -#line 891 "lexer.y"
  2706 +#line 891 "src/lexer.l"
2708 2707 { yylval.integer = atoi(yytext); return yy__integer; }
2709 2708 YY_BREAK
2710 2709 case 153:
2711 2710 YY_RULE_SETUP
2712   -#line 892 "lexer.y"
  2711 +#line 892 "src/lexer.l"
2713 2712 { sscanf(yytext,"%i",&(yylval.integer)); return yy__integer; }
2714 2713 YY_BREAK
2715 2714 case 154:
2716 2715 YY_RULE_SETUP
2717   -#line 893 "lexer.y"
  2716 +#line 893 "src/lexer.l"
2718 2717 { yylval.expr = new_string(yytext); return yy__float; }
2719 2718 YY_BREAK
2720 2719 case 155:
2721 2720 YY_RULE_SETUP
2722   -#line 894 "lexer.y"
  2721 +#line 894 "src/lexer.l"
2723 2722 { yylval.expr = new_utvar(yytext+1); return yy__utvar; }
2724 2723 YY_BREAK
2725 2724 case 156:
2726 2725 YY_RULE_SETUP
2727   -#line 895 "lexer.y"
  2726 +#line 895 "src/lexer.l"
2728 2727 { yylval.expr = new_string(yytext); return yy__Symbol; }
2729 2728 YY_BREAK
2730 2729 case 157:
2731 2730 YY_RULE_SETUP
2732   -#line 896 "lexer.y"
  2731 +#line 896 "src/lexer.l"
2733 2732 { yylval.expr = new_string(yytext); return yy__symbol; }
2734 2733 YY_BREAK
2735 2734 case 158:
2736 2735 YY_RULE_SETUP
2737   -#line 897 "lexer.y"
  2736 +#line 897 "src/lexer.l"
2738 2737 { yylval.expr = new_string(rec_name(yytext,4));
2739 2738 return yy__rec_mapsto; }
2740 2739 YY_BREAK
2741 2740 case 159:
2742 2741 YY_RULE_SETUP
2743   -#line 899 "lexer.y"
  2742 +#line 899 "src/lexer.l"
2744 2743 { yylval.expr = new_string(rec_name(yytext,5));
2745 2744 return yy__rec_mapstoo; }
2746 2745 YY_BREAK
2747 2746 case 160:
2748 2747 YY_RULE_SETUP
2749   -#line 901 "lexer.y"
  2748 +#line 901 "src/lexer.l"
2750 2749 { if (reading_predef)
2751 2750 { yylval.expr = new_string(yytext); return yy__Symbol; }
2752 2751 else lexical_error();
... ... @@ -2754,7 +2753,7 @@ YY_RULE_SETUP
2754 2753 YY_BREAK
2755 2754 case 161:
2756 2755 YY_RULE_SETUP
2757   -#line 905 "lexer.y"
  2756 +#line 905 "src/lexer.l"
2758 2757 { if (reading_predef)
2759 2758 { yylval.expr = new_string(yytext); return yy__symbol; }
2760 2759 else lexical_error();
... ... @@ -2762,7 +2761,7 @@ YY_RULE_SETUP
2762 2761 YY_BREAK
2763 2762 case 162:
2764 2763 YY_RULE_SETUP
2765   -#line 909 "lexer.y"
  2764 +#line 909 "src/lexer.l"
2766 2765 { if (reading_predef)
2767 2766 { yylval.expr = new_string(yytext); return yy__symbol; }
2768 2767 else lexical_error();
... ... @@ -2770,37 +2769,37 @@ YY_RULE_SETUP
2770 2769 YY_BREAK
2771 2770 case 163:
2772 2771 YY_RULE_SETUP
2773   -#line 913 "lexer.y"
  2772 +#line 913 "src/lexer.l"
2774 2773 { }
2775 2774 YY_BREAK
2776 2775 case 164:
2777 2776 /* rule 164 can match eol */
2778 2777 YY_RULE_SETUP
2779   -#line 914 "lexer.y"
  2778 +#line 914 "src/lexer.l"
2780 2779 { }
2781 2780 YY_BREAK
2782 2781 case 165:
2783 2782 YY_RULE_SETUP
2784   -#line 915 "lexer.y"
  2783 +#line 915 "src/lexer.l"
2785 2784 { lexical_error(); }
2786 2785 YY_BREAK
2787 2786 case 166:
2788 2787 /* rule 166 can match eol */
2789 2788 YY_RULE_SETUP
2790   -#line 916 "lexer.y"
  2789 +#line 916 "src/lexer.l"
2791 2790 { if (gindex) store_external_comment('\n'); }
2792 2791 YY_BREAK
2793 2792 case 167:
2794 2793 YY_RULE_SETUP
2795   -#line 917 "lexer.y"
  2794 +#line 917 "src/lexer.l"
2796 2795 { if (gindex) store_external_comment(yytext[0]); }
2797 2796 YY_BREAK
2798 2797 case 168:
2799 2798 YY_RULE_SETUP
2800   -#line 918 "lexer.y"
  2799 +#line 918 "src/lexer.l"
2801 2800 ECHO;
2802 2801 YY_BREAK
2803   -#line 2804 "lex.yy.c"
  2802 +#line 2803 "<stdout>"
2804 2803  
2805 2804 case YY_END_OF_BUFFER:
2806 2805 {
... ... @@ -2984,7 +2983,7 @@ static int yy_get_next_buffer (void)
2984 2983  
2985 2984 else
2986 2985 {
2987   - int num_to_read =
  2986 + size_t num_to_read =
2988 2987 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2989 2988  
2990 2989 while ( num_to_read <= 0 )
... ... @@ -3539,10 +3538,10 @@ YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
3539 3538 * @note If you want to scan bytes that may contain NUL values, then use
3540 3539 * yy_scan_bytes() instead.
3541 3540 */
3542   -YY_BUFFER_STATE yy_scan_string (yyconst char * yy_str )
  3541 +YY_BUFFER_STATE yy_scan_string (yyconst char * str )
3543 3542 {
3544 3543  
3545   - return yy_scan_bytes(yy_str,strlen(yy_str) );
  3544 + return yy_scan_bytes(str,strlen(str) );
3546 3545 }
3547 3546  
3548 3547 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
... ... @@ -3611,15 +3610,6 @@ static void yy_fatal_error (yyconst char* msg )
3611 3610  
3612 3611 /* Accessor methods (get/set functions) to struct members. */
3613 3612  
3614   -/** Get the current line number.
3615   - *
3616   - */
3617   -int yyget_lineno (void)
3618   -{
3619   -
3620   - return yylineno;
3621   -}
3622   -
3623 3613 /** Get the input stream.
3624 3614 *
3625 3615 */
... ... @@ -3653,16 +3643,6 @@ char *yyget_text (void)
3653 3643 return yytext;
3654 3644 }
3655 3645  
3656   -/** Set the current line number.
3657   - * @param line_number
3658   - *
3659   - */
3660   -void yyset_lineno (int line_number )
3661   -{
3662   -
3663   - yylineno = line_number;
3664   -}
3665   -
3666 3646 /** Set the input stream. This does not discard the current
3667 3647 * input buffer.
3668 3648 * @param in_str A readable stream.
... ... @@ -3755,19 +3735,7 @@ void yyfree (void * ptr )
3755 3735  
3756 3736 #define YYTABLES_NAME "yytables"
3757 3737  
3758   -#undef YY_NEW_FILE
3759   -#undef YY_FLUSH_BUFFER
3760   -#undef yy_set_bol
3761   -#undef yy_new_buffer
3762   -#undef yy_set_interactive
3763   -#undef yytext_ptr
3764   -#undef YY_DO_BEFORE_ACTION
3765   -
3766   -#ifdef YY_DECL_IS_OURS
3767   -#undef YY_DECL_IS_OURS
3768   -#undef YY_DECL
3769   -#endif
3770   -#line 918 "lexer.y"
  3738 +#line 918 "src/lexer.l"
3771 3739  
3772 3740  
3773 3741  
... ...
anubis_dev/compiler/src/lexer.y renamed to anubis_dev/compiler/src/lexer.l
anubis_dev/compiler/src/main.cpp
... ... @@ -48,14 +48,14 @@ extern void yyrestart(FILE *);
48 48 }
49 49 #endif
50 50  
51   -#define buf_size (1000)
  51 +#define buf_size (1000)
52 52 static char buf[buf_size+5];
53   -
  53 +
54 54 char * source_file_name= "";
55 55  
56 56 #ifdef _LINUX_
57   -char * home_directory; // for author usage only
58   -#endif
  57 +char * home_directory = NULL; // for author usage only
  58 +#endif
59 59 char start_dir[205];
60 60 char * anubis_directory = NULL; // /home/georges/anubis or /usr/share/anubis
61 61 char * my_anubis_directory = NULL; // /home/georges/my_anubis
... ... @@ -554,7 +554,6 @@ void read_configuration_file()
554 554 /* main function (Anubis compiler) */
555 555 int main(int argc, char **argv)
556 556 {
557   -
558 557 /* check if we don't have too many virtual machine instructions */
559 558 assert(i_dummy <= 255);
560 559  
... ... @@ -567,7 +566,8 @@ int main(int argc, char **argv)
567 566 mode is set. These values may be overridden later below. */
568 567 set_executables_directory(argv[0]);
569 568 set_anubis_directory();
570   - set_my_anubis_directory();
  569 + set_my_anubis_directory();
  570 +
571 571 if (verbose)
572 572 {
573 573 printf("\n Directory of compiler: %s\n", anubisExecutablesDirectory.Cstr());
... ... @@ -579,8 +579,8 @@ int main(int argc, char **argv)
579 579 /* Set the path of the configuration file 'anubis.conf'. This cannot be overridden
580 580 because otherwise this file could not be found. */
581 581 set_anubis_conf_path();
582   -
583 582  
  583 +#ifndef myanubis
584 584 /* If the 'my_anubis' directory does not exist, create it with all the files it must
585 585 contain. */
586 586 if (FileExist(myAnubisDirectory + "/library") == false)
... ... @@ -590,8 +590,8 @@ int main(int argc, char **argv)
590 590 /* If the configuration file 'anubis.conf' does not exist, create it. */
591 591 if(FileExist(anubisConfPath) == false)
592 592 create_anubis_conf_file();
593   -
594   -
  593 +#endif
  594 +
595 595 /* Now, read the configuration file and the command line in this order, so that the
596 596 command line options may override the settings found in the configuration file. */
597 597 read_configuration_file();
... ... @@ -635,6 +635,7 @@ int main(int argc, char **argv)
635 635 sprintf(my_library_directory,"%s/library",my_anubis_directory);
636 636  
637 637  
  638 +#ifndef myanubis
638 639 /* Create some directories (if needed) */
639 640 snprintf(buf,990,"%s/library",my_anubis_directory);
640 641 mkdirz(buf);
... ... @@ -642,6 +643,7 @@ int main(int argc, char **argv)
642 643 mkdirz(buf);
643 644 snprintf(buf,990,"%s/shells",my_anubis_directory);
644 645 mkdirz(buf);
  646 +#endif
645 647  
646 648  
647 649 /* If there is only the compiler name on command line, recall the syntax. */
... ...
anubis_dev/compiler/src/predef.c
... ... @@ -55,7 +55,7 @@ void do_predefinitions1(void)
55 55 /*
56 56 --
57 57 --
58   --- Les booléens (vrai et faux).
  58 +-- Les bool�ns (vrai et faux).
59 59 --
60 60 -- type Bool:
61 61 -- true,
... ... @@ -169,8 +169,6 @@ void do_predefinitions2(void)
169 169 /* include the following file produced by: 'anubis -predef' */
170 170 #ifdef _no_predef_dat_
171 171 #include "predef_npd.aux"
172   -#else
173   -#include "predef.aux"
174 172 #endif
175 173  
176 174 }
... ...
anubis_dev/compiler/src/predef_npd.aux
... ... @@ -559,7 +559,7 @@ nil),
559 559 cons(new_integer(8536855),
560 560 cons(alert,
561 561 cons(new_integer(8536861),
562   -new_string("/home/alp/anubis_dev/compiler/src/../../library/predefined.anubis"))))),
  562 +new_string("/home/ricard/anubis_dev/compiler/src/../../library/predefined.anubis"))))),
563 563 cons(cons(cons(new_string("success"),
564 564 cons(new_string("i"),
565 565 nil)),
... ...
anubis_dev/share/FileIO.cpp
... ... @@ -45,7 +45,7 @@ void NormalizeFileName(char *pathName)
45 45 String GetUserDir(void)
46 46 {
47 47 String userDir;
48   -
  48 +
49 49 #ifdef WIN32
50 50 char dir[MAX_PATH];
51 51  
... ... @@ -68,10 +68,10 @@ char dir[MAX_PATH];
68 68 if (userDir == NULL)
69 69 {
70 70 #ifdef WIN32
71   - LOGERROR("Enable to find your personal ('My Documents') directory.\n");
  71 + LOGERROR("Impossible to find your personal ('My Documents') directory.\n");
72 72 #endif
73 73 #if defined (_LINUX_) || defined (__BEOS__)
74   - LOGERROR("Enable to find your personal ('home') directory.\n");
  74 + LOGERROR("Impossible to find your personal ('home') directory.\n");
75 75 #endif
76 76 my_exit(1);
77 77 return NULL;
... ... @@ -116,6 +116,13 @@ String GetProgramRootDir(char * argv)
116 116 }
117 117 else
118 118 {
  119 + #ifdef WIN32
  120 + _getcwd(argv0, 1024);
  121 + return argv0;
  122 + #elif _LINUX_
  123 + getcwd(argv0, 1024);
  124 + return argv0;
  125 + #endif
119 126 /* name of compiler does not contain the complete path */
120 127 if ((evPATH = getenv("PATH")) == NULL)
121 128 {
... ... @@ -307,10 +314,10 @@ int CM_CopyDir(const String&amp; sourceDirPath, const String&amp; destDirPath, const Str
307 314 {
308 315 String lSourceFileName = sourceDirPath + "\\" + Data.cFileName;
309 316 String lDestDir = destDirPath + "\\" + Data.cFileName;
310   - // Cas d'un répertoire
  317 + // Cas d'un r�ertoire
311 318 if ((Data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && (Data.cFileName[0] != '.'))
312 319 {
313   - // On rentre dans le répertoire
  320 + // On rentre dans le r�ertoire
314 321 ret = CM_CopyDir(lSourceFileName, lDestDir, Filter, recursive);
315 322 if(ret != COPY_OK)
316 323 return ret;
... ... @@ -341,7 +348,7 @@ int CM_CopyFileDir(const String &amp;sourceDirPath, const String &amp;destDirPath, const
341 348 while (FileHandle != INVALID_HANDLE_VALUE && Continue)
342 349 {
343 350  
344   - // Cas d'un répertoire
  351 + // Cas d'un r�ertoire
345 352 if ((Data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) && (Data.cFileName[0] != '.'))
346 353 {
347 354 Continue = FindNextFile(FileHandle, &Data);
... ... @@ -526,7 +533,7 @@ void CM_TimetToFileTime( time_t t, LPFILETIME pft )
526 533 LONGLONG ll = Int32x32To64(t, 10000000) + 116444736000000000;
527 534 fileTime.dwLowDateTime = (DWORD) ll;
528 535 fileTime.dwHighDateTime = (DWORD)(ll >>32);
529   - // Conversion de t (exprimé en UTC) en local time pour usage avec SetFileTime()
  536 + // Conversion de t (exprim�en UTC) en local time pour usage avec SetFileTime()
530 537 // FileTimeToLocalFileTime(&fileTime, pft);
531 538 *pft = fileTime;
532 539 }
... ...