xminigol.grm

来自「prolog,人工智能推理程序,运行环境prolog」· GRM 代码 · 共 30 行

GRM
30
字号
userdefined domains PROCID

productions
  EXP	= EXP plus EXP			-> plus(EXP,EXP),
	  EXP minus EXP			-> minus(EXP,EXP)
	  --
	  EXP mult EXP			-> mult(EXP,EXP),
	  EXP div EXP			-> div(EXP,EXP)
	  --
	  rightassoc EXP power EXP	-> power(EXP,EXP),
	  EXP exclmmark			-> factorial(EXP),
	  EXP questionmark EXP colon EXP -> conditional(EXP,EXP,EXP)
	  --
	  id(STRING) lpar PARMLIST rpar -> call(PROCID,PARMLIST),
	  id(STRING)			-> var(STRING),
	  minus EXP			-> neg(EXP),
	  int(INTEGER)			-> int(INTEGER),
	  real(REAL)			-> real(REAL),
	  str(STRING)			-> str(STRING),
	  char(CHAR)			-> char(CHAR),
	  lpar EXP rpar			-> EXP

  PARMLIST = EXP+ separator comma

  SENT =  if_ EXP then SENT else SENT	-> ifthenelse(EXP,SENT,SENT),
	  if_ EXP then SENT		-> ifthen(EXP,SENT),
	  while EXP do SENT		-> while(EXP,SENT),
	  goto int(INTEGER)		-> goto_line(INTEGER),
	  goto id(STRING)		-> goto_lbl(STRING)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?