export const GRL_KEYWORDS = [
  "language",
  "module",
  "import",
  "end",
  "persistent",
  "const",
  "var",
  "robot",
  "tool",
  "frame",
  "load",
  "target",
  "speed",
  "zone",
  "path",
  "operation",
  "process",
  "proc",
  "func",
  "return",
  "call",
  "if",
  "elseif",
  "else",
  "switch",
  "case",
  "default",
  "while",
  "for",
  "to",
  "step",
  "break",
  "continue",
  "label",
  "jump",
  "movej",
  "movel",
  "movec",
  "run_path",
  "run_operation",
  "set_tool",
  "set_frame",
  "set_speed",
  "set_zone",
  "wait",
  "pulse",
  "timer",
  "io",
  "true",
  "false",
  "all",
  "any",
  "rising",
  "falling",
  "changed",
  "trap",
  "interrupt",
  "enable",
  "disable",
  "raise",
  "alarm",
  "try",
  "catch",
  "finally",
  "task",
  "sync",
  "post_hint",
  "source",
  "defaults",
  "point",
  "event",
  "before",
  "after",
  "at",
  "joint_target",
  "pose_target",
  "pose",
  "poseq",
  "joints",
  "robot_config",
  "ext_axis",
  "fine",
  "continuous",
  "cnt",
  "z"
] as const;

export type GrlKeyword = (typeof GRL_KEYWORDS)[number];

const KEYWORD_SET = new Set<string>(GRL_KEYWORDS);

export function isGrlKeyword(value: string): value is GrlKeyword {
  return KEYWORD_SET.has(value);
}
