mirror of https://git.wuffs.org/MWCC
30 lines
513 B
C
30 lines
513 B
C
#ifndef COMPILER_SWITCH_H
|
|
#define COMPILER_SWITCH_H
|
|
|
|
#include "compiler/common.h"
|
|
|
|
struct SwitchCase {
|
|
SwitchCase *next;
|
|
CLabel *label;
|
|
CInt64 min;
|
|
CInt64 max;
|
|
};
|
|
typedef struct CaseRange {
|
|
CInt64 min;
|
|
CInt64 range;
|
|
PCodeLabel *label;
|
|
} CaseRange;
|
|
|
|
struct SwitchInfo {
|
|
SwitchCase *cases;
|
|
CLabel *defaultlabel;
|
|
Type *x8;
|
|
};
|
|
|
|
extern ObjectList *switchtables;
|
|
|
|
extern void switchstatement(ENode *expr, SwitchInfo *info);
|
|
extern void dumpswitchtables(Object *funcobj);
|
|
|
|
#endif
|