#include "defines.h"
#include "amacro.h"
#include "vsiki.h"

unchar *read_var_name(unchar *str,unchar vname[],int max)
/* 変数名読みだし */
/* １文字目が変数に使える文字であることを確認してから呼び出すこと */
/* 変数名文字の制限は少ない */
{
unsint c;
int p=0;
	while ((c=*str++)!=0) {
		if (check_kanji1(c)) {
			/* ２バイト文字：全て利用可能 */
			if (p+1>=max) return(NULL); /* over */
			vname[p++]=c;
			vname[p++]=*str++;
			continue;
		}
		/* １バイト文字：使えない文字もある */
		if (p>=max) return(NULL); /* over */
		/* 変数に使えない文字が出てきたら終わり */
		if (!(isalnum(c) || iskana(c) || c=='_')) break;
		vname[p++]=c;
	}
	/* 使えない文字のところに合わせる */
	str--;
	/* EOS */
	vname[p]=0;
	#if DEBUG
	printsn("変数名：",vname);
	printsn("次：",str);
	#endif
	/* 変数名直後のアドレスを返す */
	return(str);
}
