Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.8 KiB

  1. /* asmexpr.h -- include file for microsoft 80x86 assembler
  2. **
  3. ** microsoft (r) macro assembler
  4. ** copyright (c) microsoft corp 1986. all rights reserved
  5. **
  6. ** randy nevin
  7. */
  8. /* Types of values desired by operators in evaltop */
  9. #define CALLABS 0 /* unary or binary with null segment */
  10. #define CLSIZE 1 /* unary or binary with (left) size */
  11. #define CSAME 2 /* binary in same segment and not external */
  12. #define CDATA 3 /* unary and data associated */
  13. #define CCODE 4 /* unary and code associated */
  14. #define CREC 5 /* unary record field or name */
  15. #define CSEG 6 /* unary and value must have segment */
  16. #define CLSEG 7 /* binary with left value segment assoc. */
  17. #define CSIZE 8 /* unary with size */
  18. #define CVAR 9 /* unary constant or data */
  19. #define CONEABS 10 /* binary with one value constant */
  20. #define CSAMABS 11 /* binary in same segment or 2nd constant */
  21. /** parser activation record
  22. * This structure is equivalent to the upper frame variables
  23. * of the outer Pascal procedure
  24. */
  25. struct ar {
  26. DSCREC *lastitem;
  27. DSCREC *curresult;
  28. SCHAR *expscan;
  29. USHORT index;
  30. OFFSET base;
  31. USHORT rstype;
  32. USHORT vmode;
  33. UCHAR segovr;
  34. UCHAR evalop;
  35. SCHAR bracklevel;
  36. SCHAR parenlevel;
  37. UCHAR lastprec;
  38. UCHAR curprec;
  39. UCHAR linktype;
  40. UCHAR exprdone;
  41. UCHAR unaryflag;
  42. UCHAR addplusflag;
  43. };
  44. UCHAR PASCAL CODESIZE evalalpha PARMS((struct ar *));
  45. VOID PASCAL CODESIZE evaluate PARMS((struct ar *));
  46. VOID PASCAL CODESIZE exprop PARMS((struct ar *));
  47. VOID PASCAL CODESIZE findsegment PARMS(( UCHAR , struct ar *));
  48. char PASCAL CODESIZE getitem PARMS((struct ar *));
  49. UCHAR PASCAL CODESIZE popoperator PARMS((struct ar *));
  50. DSCREC * PASCAL CODESIZE popvalue PARMS((struct ar *));
  51. VOID PASCAL CODESIZE valerror PARMS((struct ar *));