#include <ctype.h>
#include <stdio.h>
#include "getop.h" /* getop()用のヘッダファイル読み込み */
#include "char_def.h"

/* getop: 次の演算子あるいは数値の被演算子を取ってくる */
char *getop(char *str, char *op)
{
	/* 次の値まで半角スペースとタブを読み飛ばす */
	while ((*str == CH_BLANK) || (*str == CH_TAB)) {
		str++;
	}
	
	/* 数値でない場合 */
	if (!isdigit(*str)) {
		*(op++) = *str;
		*op = CH_NULL;
		return ++str;		
	}
	
	/* 整数部を求める */
	while (isdigit(*str)) {
		*(op++) = *(str++);
	}
	
	/* 小数部がある場合 */
	if (*str == CH_PERIOD) {
		/* 小数点を書き込む */
		*(op++) = *(str++);
		/* 小数部を求める */
		while (isdigit(*str)) {
			*(op++) = *(str++);			
		}
	}
	
	/* NULLターミネート */
	*op = CH_NULL;

	return str;
}