265 declare sub cConstDecl(
byval attrib
as integer )
266 declare sub cTypeDecl(
byval attrib
as integer )
269 declare sub cEnumDecl(
byval attrib
as integer )
281 byref dimensions
as integer, _
282 dTB()
as FBARRAYDIM, _
283 byval checkprnts
as integer =
TRUE, _
284 byval allow_ellipsis
as integer =
TRUE _
287 declare sub cArrayDecl(
byref dimensions
as integer, exprTB()
as ASTNODE
ptr )
291 byval s
as FBSYMBOL
ptr, _
297 byval is_len
as integer, _
298 byref dtype as integer, _
299 byref subtype
as FBSYMBOL
ptr, _
300 byref lgt
as longint _
305 byref dtype as integer, _
306 byref subtype
as FBSYMBOL
ptr, _
307 byref lgt
as longint _
312 byref dtype as integer, _
313 byref subtype
as FBSYMBOL
ptr, _
314 byref lgt
as longint, _
334 byval attrib
as FB_SYMBATTRIB, _
337 byval tk
as integer _
342 byval parent as FBSYMBOL
ptr, _
343 byval proc as FBSYMBOL
ptr, _
344 byval procmode
as integer, _
345 byval isproto
as integer _
380 byval showerror
as integer =
TRUE _
432 byval expr as ASTNODE
ptr _
438 declare function cOperator(
byval is_overload
as integer )
as integer
503 byval chain_ as FBSYMCHAIN
ptr _
512 byval isASM
as integer =
FALSE _
530 declare function cAtom _
533 byval chain_ as FBSYMCHAIN
ptr _
538 byval chain as FBSYMCHAIN
ptr, _
539 byval checkarray
as integer =
TRUE _
544 byval sym as FBSYMBOL
ptr, _
545 byval check_array
as integer _
550 byval chain as FBSYMCHAIN
ptr, _
551 byval checkarray
as integer _
554 declare function cWithVariable(
byval checkarray
as integer )
as ASTNODE
ptr
559 byval chain_ as FBSYMCHAIN
ptr, _
560 byval checkarray
as integer, _
572 byval sym as FBSYMBOL
ptr, _
578 byval sym as FBSYMBOL
ptr _
581 declare function cConstant(
byval sym as FBSYMBOL
ptr )
as ASTNODE
ptr
585 byval sym as FBSYMBOL
ptr _
588 declare function cStrLiteral(
byval skiptoken
as integer =
TRUE )
as ASTNODE
ptr
589 declare function cNumLiteral(
byval skiptoken
as integer =
TRUE )
as ASTNODE
ptr
594 byval proc as FBSYMBOL
ptr, _
595 byval ptrexpr
as ASTNODE
ptr, _
596 byval arg_list
as FB_CALL_ARG_LIST
ptr, _
609 byval parent as FBSYMBOL
ptr, _
610 byref attrib
as integer _
615 byval attrib
as integer, _
616 byval proc as FBSYMBOL
ptr, _
617 byval is_proto
as integer, _
618 byref dtype as integer, _
619 byref subtype
as FBSYMBOL
ptr _
624 byval dtype as FB_DATATYPE _
625 )
as FB_PROC_RETURN_METHOD
632 declare sub cByrefAttribute(
byref attrib
as integer,
byval is_func
as integer )
637 byval sym as FBSYMBOL
ptr, _
638 byval ptrexpr
as ASTNODE
ptr, _
639 byval thisexpr
as ASTNODE
ptr =
NULL, _
645 byval proc as FBSYMBOL
ptr, _
646 byval thisexpr
as ASTNODE
ptr, _
647 byval arg_list
as FB_CALL_ARG_LIST
ptr, _
654 byval sym as FBSYMBOL
ptr, _
655 byval ptrexpr
as ASTNODE
ptr, _
656 byval thisexpr
as ASTNODE
ptr =
NULL, _
657 byval checkprnts
as integer =
FALSE, _
663 byval sym as FBSYMBOL
ptr, _
664 byval thisexpr
as ASTNODE
ptr, _
670 byval sym as FBSYMBOL
ptr _
675 byval dtype as integer, _
676 byval subtype
as FBSYMBOL
ptr, _
677 byval varexpr
as ASTNODE
ptr, _
678 byval check_array
as integer, _
684 byval dtype as integer, _
685 byval subtype
as FBSYMBOL
ptr, _
686 byval expr as ASTNODE
ptr _
691 byval dtype as integer, _
692 byval subtype
as FBSYMBOL
ptr, _
693 byval varexpr
as ASTNODE
ptr, _
694 byval checkarray
as integer _
699 byval dtype as integer, _
700 byval subtype
as FBSYMBOL
ptr, _
701 byval varexpr
as ASTNODE
ptr, _
702 byval isfuncptr
as integer, _
703 byval checkarray
as integer _
708 byval expr as ASTNODE
ptr _
711 declare sub cAssignment(
byval assgexpr
as ASTNODE
ptr)
771 declare function cViewStmt(
byval is_func
as integer)
as ASTNODE
ptr
772 declare function cMidStmt( )
as integer
774 declare function cWidthStmt(
byval isfunc
as integer)
as ASTNODE
ptr
775 declare function cColorStmt(
byval isfunc
as integer)
as ASTNODE
ptr
782 byval isasm
as integer _
788 declare function cIIFFunct()
as ASTNODE
ptr
789 declare function cVAFunct()
as ASTNODE
ptr
791 declare function cAnonType( )
as ASTNODE
ptr
794 byval expr as ASTNODE
ptr, _
795 byval defaultvalue
as longint = 0 _
802 byval token
as integer, _
803 byval doeat
as integer =
FALSE, _
805 byval stop_on_comma
as integer =
FALSE _
810 byval for_token
as integer, _
811 byval until_token
as integer =
INVALID, _
817 byval dtype as integer _
822 byval attrib
as integer, _
823 byval dopreserve
as integer, _
824 byval token
as integer, _
825 byval is_fordecl
as integer _
830 byval dtype as integer, _
831 byval subtype
as FBSYMBOL
ptr _
836 byref dtype as integer, _
837 byref subtype
as FBSYMBOL
ptr, _
838 byref lgt
as longint _
855 byval bitsize
as longint, _
856 byval is_unsigned
as integer =
FALSE _
864 #define hSkipStmt( ) _
869 if( lexGetToken( ) <> CHAR_LPRNT )
then
870 errReport( FB_ERRMSG_EXPECTEDLPRNT )
878 if( lexGetToken( ) <> CHAR_RPRNT )
then
879 errReport( FB_ERRMSG_EXPECTEDRPRNT )
888 if( lexGetToken( ) <> CHAR_COMMA )
then
889 errReport( FB_ERRMSG_EXPECTEDCOMMA )
896 #macro hMatchExpression(e)
912 #macro hCheckSuffix(suffix)
913 if( suffix <> FB_DATATYPE_INVALID )
then
914 if( fbLangOptIsSet( FB_LANG_OPT_SUFFIX ) =
FALSE )
then
915 errReportNotAllowed( FB_LANG_OPT_SUFFIX, FB_ERRMSG_SUFFIXONLYVALIDINLANG )
921 #macro hEmitCurrLine( )
922 if( env.clopt.debug )
then
923 if( env.includerec = 0 )
then
924 astAdd( astNewLIT( lexCurrLineGet( ) ) )
930 #define hGetInstPtrMode(ip)
iif( astIsCONST( ip ), FB_PARAMMODE_BYVAL,
INVALID )
938 #macro fbSetPrntOptional( _bool )
948 #macro fbSetCheckArray( _bool )
958 #macro fbSetIsExpression( _bool )
968 #macro fbSetIsScope( _bool )
978 #macro fbSetEqInParensOnly( _bool )
988 #macro fbSetGtInParensOnly( _bool )
998 #macro fbSetIsPP( _bool )