hedgewars/pas2cRedo.pas
author koda
Tue, 21 Jan 2014 22:38:13 +0100
changeset 10015 4feced261c68
parent 9966 01e198990211
child 10080 ac51bcb534ef
permissions -rw-r--r--
partial merge of the webgl branch This commit contains the new pas2c conversion tool, the pascal to c build structure and the opengl2 rendering backend. Patch reviewed by unC0Rr.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8026
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
     1
redo;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
     2
{This file contains functions that are re-implemented}
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
     3
{pas2c will add prefix fpcrtl_ to all these functions}
10015
4feced261c68 partial merge of the webgl branch
koda
parents: 9966
diff changeset
     4
type
8026
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
     5
    uinteger = uinteger;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
     6
    Integer = integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
     7
    LongInt = integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
     8
    LongWord = uinteger;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
     9
    Cardinal = uinteger;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    10
    PtrInt = integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    11
    Word = uinteger;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    12
    Byte = integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    13
    SmallInt = integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    14
    ShortInt = integer;
8105
d088be5ecdcb ok at least pas2c now parses allnots.......
koda
parents: 8026
diff changeset
    15
    Int64 = integer;
8026
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    16
    QWord = uinteger;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    17
    GLint = integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    18
    GLuint = integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    19
    int = integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    20
    size_t = integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    21
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    22
    pointer = pointer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    23
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    24
    float = float;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    25
    single = float;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    26
    double = float;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    27
    real = float;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    28
    extended = float;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    29
    GLfloat = float;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    30
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    31
    boolean = boolean;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    32
    LongBool = boolean;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    33
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    34
    string = string;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    35
    shortstring = string;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    36
    ansistring = string;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    37
    widechar = string;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    38
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    39
    char = char;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    40
    PChar = ^char;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    41
    PPChar = ^Pchar;
10015
4feced261c68 partial merge of the webgl branch
koda
parents: 9966
diff changeset
    42
8026
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    43
    PByte = ^Byte;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    44
    PLongInt = ^LongInt;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    45
    PLongWord = ^LongWord;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    46
    PInteger = ^Integer;
10015
4feced261c68 partial merge of the webgl branch
koda
parents: 9966
diff changeset
    47
8026
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    48
    Handle = integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    49
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    50
var
9966
01e198990211 pas2c engine now writes debug log
unc0rr
parents: 8856
diff changeset
    51
    write, writeLn, read, readLn, flush, CreateDir: procedure;
8026
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    52
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    53
    halt:procedure;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    54
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    55
    GetEnumName:function:shortstring;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    56
    TypeInfo:function:Integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    57
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    58
    lo:function:Integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    59
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    60
    init:procedure;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    61
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    62
    StrLen:function : integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    63
    odd, even : function : boolean;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    64
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    65
    Length : function : integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    66
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    67
    Now : function : integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    68
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    69
    new, dispose, FillChar, Move : procedure;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    70
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    71
    trunc, round : function : integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    72
    abs, sqr : function : integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    73
8856
af59e65586a7 Fix pos() return type
unc0rr
parents: 8105
diff changeset
    74
    StrPas, FormatDateTime, copy, delete, str, PosS, trim, LowerCase : function : shortstring;
af59e65586a7 Fix pos() return type
unc0rr
parents: 8105
diff changeset
    75
    pos : function : integer;
8026
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    76
    StrToInt : function : integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    77
    SetLength, val : procedure;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    78
    _pchar : function : PChar;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    79
    pchar2str : function : string;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    80
    memcpy : procedure;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    81
8856
af59e65586a7 Fix pos() return type
unc0rr
parents: 8105
diff changeset
    82
     min, max:function:integer;
8026
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    83
    assign, rewrite, rewrite_2, reset, reset_2, flush, BlockWrite, BlockRead, close : procedure;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    84
    FileExists, DirectoryExists, eof : function : boolean;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    85
    ExtractFileName : function : string;
10015
4feced261c68 partial merge of the webgl branch
koda
parents: 9966
diff changeset
    86
8026
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    87
    ParamCount : function : integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    88
    ParamStr : function : string;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    89
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    90
    arctan2, power: function : float;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    91
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    92
    //TypeInfo, GetEnumName : function : shortstring;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    93
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    94
    UTF8ToUnicode, WrapText: function : shortstring;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    95
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    96
    GetMem : function : pointer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    97
    FreeMem : procedure;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    98
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
    99
    BeginThread, ThreadSwitch : procedure;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
   100
    InterlockedIncrement, InterlockedDecrement : procedure;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
   101
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
   102
    random : function : integer;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
   103
    randomize : procedure;
10015
4feced261c68 partial merge of the webgl branch
koda
parents: 9966
diff changeset
   104
8026
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
   105
    Assigned : function : boolean;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
   106
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
   107
    //EnumToStr : function : string;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
   108
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
   109
    initParams : procedure;
10015
4feced261c68 partial merge of the webgl branch
koda
parents: 9966
diff changeset
   110
8026
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
   111
    Load_GL_VERSION_2_0 : procedure;
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
   112
4a4f21070479 merge xymeng's gsoc engine with a few updates (and further checks on symbol definitions)
koda
parents:
diff changeset
   113