I omitted the additional type and the first compilation error has been removed. Now I have two additional compilation errors. My code is:
program Ex1 (input, output);
type NumNode = record Value: integer; pNext: ^ NumNode; end;
nNumber = record DigitsAmount: integer; DigitValue:^ NumNode; MSD: integer; DigitBase: integer; end;
function nNumberIsEmpty (Num: nNumber): boolean; begin nNumberIsEmpty := (Num.DigitValue=0); end;
function nNumberPop (var Number: nNumber): integer; var pNextValue:^ NumNode; begin if (nNumberIsEmpty(Number)) then nNumberPop:=0; else begin Number.DigitsAmount:=Number.DigitsAmount-1; pNextValue := Number.DigitValue^.pNext; dispose (Number.DigitValue); Number.DigitValue:=pNextValue; if (Number.DigitsAmount=0) then begin Number.MSD:=0; nNumberPop:=0; end else begin nNumberPop:=pNextValue^.Value; end; end; end;
function nString2nList (String:^ char; var Number:nNumber;):boolean; begin end;
begin writeln ('Hello world'); end.
The errors I get:
ex1.pas: In function 'Nnumberisempty': ex1.pas:17: invalid operands to binary = ex1.pas: At top level: ex1.pas:44: parse error before '^'
What causes these errors?
--------------------------------- Do you Yahoo!? Yahoo! Small Business - Try our new resources site!
loop lopy a écrit:
I omitted the additional type and the first compilation error has been removed. Now I have two additional compilation errors. My code is:
program Ex1 (input, output);
type NumNode = record Value: integer; pNext: ^ NumNode; end;
nNumber = record DigitsAmount: integer; DigitValue:^ NumNode; MSD: integer; DigitBase: integer; end;
function nNumberIsEmpty (Num: nNumber): boolean; begin nNumberIsEmpty := (Num.DigitValue=0); end;
function nNumberPop (var Number: nNumber): integer; var pNextValue:^ NumNode; begin if (nNumberIsEmpty(Number)) then nNumberPop:=0; else begin Number.DigitsAmount:=Number.DigitsAmount-1; pNextValue := Number.DigitValue^.pNext; dispose (Number.DigitValue); Number.DigitValue:=pNextValue; if (Number.DigitsAmount=0) then begin Number.MSD:=0; nNumberPop:=0; end else begin nNumberPop:=pNextValue^.Value; end; end; end;
function nString2nList (String:^ char; var Number:nNumber;):boolean; begin end;
begin writeln ('Hello world'); end.
The errors I get:
ex1.pas: In function 'Nnumberisempty': ex1.pas:17: invalid operands to binary =
You have confused DigitsAmount and DigitsValue: this to be expected with so badly chosen names
ex1.pas: At top level: ex1.pas:44: parse error before '^'
the type in a parameter list should be a simple identifier: declare type pChar = ^char;
then ... (string:pChar; ...) will be correct.
there are other simple errors around. you should read more carefully your programs (and your introductory lectures in pascal) before asking. Probably people here will soon become tired to do your homework.
Maurice