예제 #1
0
파일: parsing.c 프로젝트: v923z/megawifi
uint16_t GetNumber(uint8_t **pos) {
	uint16_t ret = 0;
	uint8_t ss, isvariable = 0;
	variable_ind = 65535;
	RemoveWhiteSpace(pos);
	while(1) {
	    ss = *((*pos)++);
	    if((ss == ' ') || 
			(ss == ';') || 
			(ss == ']') || 
			(ss == '[') || 
			(ss == ')') ||
			(ss == '}') ||
			(ss == '{')) break;
	    else if((ss >= '0') && (ss <= '9')) ret = ret * 10 + (ss - '0');
	    else if(ss == 'v') {
			while(ss != '(') ss = *((*pos)++);
			variable_ind = GetNumber(pos);
			while((*(*pos) == ')')) (*pos)++;
			isvariable = 1;
			break;
		}
	}
	// This is needed, so that we can catch loops
	if(ss == ';' || ss == ']') (*pos)--;
	if(isvariable) {
		if(variable_ind < MAX_VARIABLE) ret = variable[variable_ind];
		else ret = 65535;
	}
	//printf("ret: %d\n", ret);
	return(ret);
}
예제 #2
0
void Cmd_NameFlag(ITEM *i)
{
	short n=(short)GetNumber();
	char *c=WordBuffer;
	if(n==-1)
	{
		SendItem(i,"Which flag number ?\n");
		return;
	}
	GetAll();
	if(!strlen(c))
	{
		SendItem(i,"You must specify a name for the flag.\n");
		return;
	}
	if(*c!='@')
	{
		SendItem(i,"Flags must start with the '@' character.\n");
		return;
	}
	if(GetFlagByName(c)!=-1)
	{
		SendItem(i,"But flag %d is already called '%s'.\n",
			GetFlagByName(c),c);
		return;
	}
	if((n<0)||(n>511))
	{
		SendItem(i,"Flag numbers are from 0-511 inclusive.\n");
		return;
	}
	SetFlagName(n,c);
	SendItem(i,"Flag %d is now called %s.\n",n,c);
}
예제 #3
0
파일: modsample.c 프로젝트: sajonoso/jual
int myfunc(jual_xapi *JXAPI)
{
    void *L = JXAPI->LS;
    // Map functions as required
    defGetNumber *GetNumber = (defGetNumber *)JXAPI->fnGetNumber;
    defGetString *GetString = (defGetString *)JXAPI->fnGetString;
    defGetObject *GetObject = (defGetObject *)JXAPI->fnGetObject;
    
    defNumberPush *NumberPush = (defNumberPush *)JXAPI->fnNumberPush;
    defStrInit *StrInit = (defStrInit *)JXAPI->fnStrInit;
    defStrAppend *StrAppend = (defStrAppend *)JXAPI->fnStrAppend;
    defStrPush *StrPush = (defStrPush *)JXAPI->fnStrPush;

    int iNum = GetNumber(L, 1);
    
    size_t tSize;
    const char *szParm2 = GetString(L, 2, &tSize);

    printf("you entered %d %s %d\n", iNum, szParm2, tSize);

    char strBuffer[JXAPI->STRBUFFER_SIZE];
    char *cResult = StrInit(L, strBuffer, 16);

    const char text[]="Hello from the C language";
    StrAppend(strBuffer, text, sizeof(text)-1);

    const char text2[]="More greeting from the C language";
    StrAppend(strBuffer, text2, sizeof(text2)-1);

    StrPush(strBuffer);

    return 1;
}
예제 #4
0
파일: 38.c 프로젝트: idtirba/Euler-1-50
int IsPandigital(int number) {
   int multiplyer = 1, concatNumber[9], ndx, temp, tempSize;
   int numberSize = GetSize(number), sizeSum=0, concatNdx=0;
   int digitCheck[9];
   for(ndx=0;ndx<9;ndx++) {
      concatNumber[ndx] = 0;
      digitCheck[ndx] = 0;
   }
   while(sizeSum<10) { 
      temp = number*multiplyer;
      tempSize = GetSize(temp);
      sizeSum += tempSize;
      concatNdx = AddNumber(temp, tempSize, concatNdx, concatNumber);
      multiplyer++;
   }
   for(ndx=0;ndx<9;ndx++) {
      digitCheck[(concatNumber[ndx]-1)]++;
   }  
   for(ndx=0;ndx<9;ndx++) {
      if(digitCheck[ndx] != 1)
         return 0;
   } 

   return GetNumber(concatNumber);
}
예제 #5
0
int GetNextToken()
{
	EatWhitespace();

	if (isalpha(LastChar)) {
		return GetIdentifier();
	}

	if (isdigit(LastChar) || LastChar == '.') {
		return GetNumber();
	}

	if (LastChar == '#') {
		SkipComment();
	
		if (LastChar != EOF) {
			return GetNextToken();
		}
	}

	if (LastChar == EOF) {
		return static_cast<int>(Token::Eof);
	}

	int ch = LastChar;
	LastChar = getchar();

	return ch;
}
예제 #6
0
파일: LEXICAL.CPP 프로젝트: mcgrue/maped2w
void GetToken(void)
{
	//int		n	=0;
	// Simply reads in the next statement and places it in the
	// token buffer.

	ParseWhitespace();

	switch (chr_table[*src])
	{
	case LETTER:
		//token_type = IDENTIFIER;
		tok.type=IDENTIFIER;
		GetIdentifier();
		break;
	case DIGIT:
		//token_type = DIGIT;
		tok.type=DIGIT;
		GetNumber();
		break;
	case SPECIAL:
		//token_type = CONTROL;
		tok.type=CONTROL;
		GetPunctuation();
		break;
	}

	//printf("token: %s\n", tok.ident);

	if (!*src && inevent)
	{
		err("Unexpected end of file");
	}
}
예제 #7
0
파일: main.c 프로젝트: JackIrish/ios
int main(int argc, const char * argv[])
{
    SetHomeDirectory();     // set working dir to ~
    chdir( "./Desktop" );   // set working dir to ~/Desktop

	int		number;
	char	dinoName[ kDinoRecordSize+1 ];
	
    // GetNumber() returns a number typed by the user that indicates the
    //  "command" to be performed.
    //  1..n: print and optionally update a record
    //    -1: append a new record
    //     0: quit
	while ( (number = GetNumber()) != 0 ) {
        if ( number>0 ) {
            // Read the nth record and print the name
            ReadDinoName( number, dinoName );
            printf( "Dino #%d: %s\n", number, dinoName );
        } else {
            // number == -1: set number to next record #
            number = GetNumberOfDinos() + 1;
        }
		
		if ( GetNewDinoName( dinoName ) )
			WriteDinoName( number, dinoName );
	}
	
	printf( "Goodbye..." );
	
	return 0;
}
예제 #8
0
void getPlatforms(v8::FunctionArgs args)
{
    auto paltformDetails = GetArray(args[2]);
    auto platformList = GetArray(args[1]);
    
    cl_uint devices = GetNumber(args[0]);
    cl_uint count = 0;

    auto platformBuffer = std::unique_ptr<cl_platform_id[]>(new cl_platform_id[devices]);
    auto platformOut = platformList->IsNull() ? nullptr : platformBuffer.get();
    auto countOut = paltformDetails->IsNull() ? nullptr : &count;
    auto error = clGetPlatformIDs(devices, platformOut, countOut);

    if (platformOut != nullptr)
    {
        for (auto i = 0; i < devices; ++i)
        {
            platformList->Set(i, v8::WrapPointer(platformBuffer[i]));
        }
    }

    if (countOut != nullptr)
    {
        paltformDetails->Set(v8::NewString("length"), v8::NewNumber(count));
    }

    Return(args, error);
}
예제 #9
0
파일: Token.cpp 프로젝트: doniexun/OrangeC
void NumericToken::Parse(std::string &line)
{
    const char *p = line.c_str();
    GetNumber(&p);
    SetChars(line.substr(0, p - line.c_str()));
    line.erase(0, p-line.c_str());
}
예제 #10
0
void CPDF_StreamContentParser::Handle_SetHorzScale() {
  if (m_ParamCount != 1) {
    return;
  }
  m_pCurStates->m_TextHorzScale = GetNumber(0) / 100;
  OnChangeTextMatrix();
}
예제 #11
0
void CPDF_StreamContentParser::Handle_SetColorPS_Stroke() {
  if (m_Options.m_bTextOnly) {
    return;
  }
  CPDF_Object* pLastParam = GetObject(0);
  if (!pLastParam) {
    return;
  }
  int nargs = m_ParamCount;
  int nvalues = nargs;
  if (pLastParam->IsName())
    nvalues--;

  FX_FLOAT* values = NULL;
  if (nvalues) {
    values = FX_Alloc(FX_FLOAT, nvalues);
    for (int i = 0; i < nvalues; i++) {
      values[i] = GetNumber(nargs - i - 1);
    }
  }
  if (nvalues != nargs) {
    CPDF_Pattern* pPattern = FindPattern(GetString(0), FALSE);
    if (pPattern) {
      m_pCurStates->m_ColorState.SetStrokePattern(pPattern, values, nvalues);
    }
  } else {
    m_pCurStates->m_ColorState.SetStrokeColor(NULL, values, nvalues);
  }
  FX_Free(values);
}
예제 #12
0
// ===  FUNCTION  ============================================================
//         Name:  GetLine
//  Description:  
// ===========================================================================
TGraph* PlotLine(int plateu, std::string pu, std::string det)
{
  

//----------------------------------------------------------------------------
//  Default input cross section
//----------------------------------------------------------------------------
  std::map<int, double> SigXs;
  SigXs[112] = 46;
  SigXs[200] = 11.47;
  SigXs[500] = 0.45;

  double x[3], y[3];

  x[0] = 112;
  x[1] = 200;
  x[2] = 500;
  
  for (int i = 0; i < 3; ++i)
  {
    y[i] = SigXs[x[i]] * GetNumber(plateu, x[i], pu, det) ;
    std::cout << " pu " << pu << " det " << det <<" signal " << x[i] <<" scal " << y[i] << std::endl;
  }

  TGraph* xs = new TGraph(3, x, y);
  xs->SetMarkerStyle(34);

  return xs;
}       // -----  end of function PlotLine  -----
예제 #13
0
int main()
{
	int n;
	int i,j = 0;
	n = GetNumber();
	printf("The primes between 2 and %d are :\n",n);
	for(i = 2;i * i< n;++i )//使循环减少n - 根号n + 1次
	{
		if(IsPrime(i))
		{
			printf("%d ",i);
			j++;
			if(j%5 == 0)
			{
				printf("\n");
			}
		}
	}
		if(j%5 != 0)
		{
			printf("\n");
		}
	return 0;

}
예제 #14
0
inline bool MtgCard::operator==(const MtgCard& rhs) {
    return GetLayout() == rhs.GetLayout() &&
            GetManacost() == rhs.GetManacost() &&
            GetCmc() == rhs.GetCmc() &&
            CompareStringList(GetColors(), rhs.GetColors()) &&
            type == rhs.type &&
            CompareStringList(GetSupertypes(), rhs.GetSupertypes()) &&
            CompareStringList(GetTypes(), rhs.GetTypes()) &&
            CompareStringList(GetSubtypes(), rhs.GetSubtypes()) &&
            GetRarity() == rhs.GetRarity() &&
            text == rhs.GetText() &&
            GetFlavor() == rhs.GetFlavor() &&
            GetArtist() == rhs.GetArtist() &&
            GetNumber() == rhs.GetNumber() &&
            GetPower() == rhs.GetPower() &&
            GetToughness() == rhs.GetToughness() &&
            GetLoyalty() == rhs.GetLoyalty() &&
            GetMultiverseid() == rhs.GetMultiverseid() &&
            CompareIntList(GetVariations(), rhs.GetVariations()) &&
            GetImageName() == rhs.GetImageName() &&
            GetWatermark() == rhs.GetWatermark() &&
            GetBorder() == rhs.GetBorder() &&
            IsTimeshifted() == rhs.IsTimeshifted() &&
            GetHand() == rhs.GetHand() &&
            GetLife() == rhs.GetLife() &&
            IsReserved() == rhs.IsReserved() &&
            GetReleasedate() == rhs.GetReleasedate() &&
            IsStarter() == rhs.IsStarter() &&
            CompareStringPairList(GetRulings(), rhs.GetRulings()) &&
            CompareStringPairList(GetForeignNames(), rhs.GetForeignNames()) &&
            GetOriginalText() == rhs.GetOriginalText() &&
            GetOriginalType() == rhs.GetOriginalType() &&
            CompareStringPairList(GetLegalities(), rhs.GetLegalities()) &&
            GetEdition() == rhs.GetEdition();
}
예제 #15
0
void FScanner::MustGetNumber ()
{
	if (GetNumber() == false)
	{
		ScriptError ("Missing integer (unexpected end of file).");
	}
}
예제 #16
0
void CValue::SaveToString(CString &Str)
{
	switch(nType)
	{
		case TYPE_NUMBER:
			{
				NUMBER f=GetNumber();
				if(f==int(f))
					Str.Format("{1/%d}",int(f));
				else
					Str.Format("{1/%f}",f);
				return;
			}
		case TYPE_STRING:

			Str=GetString();

			ReplaceBySave(Str);

			Str=CString("{2/")+Str+"}";

			return;
		case TYPE_DATE:
			Str.Format("{3/%d}",GetDate());
			return;
		case TYPE_REFFER:
			pRef->SaveToString(Str);
			return;
		break;
	};
	Str="{0/0}";
}
예제 #17
0
static SilikoSyntaxTreeNode *GetAtom(SilikoLexer *lexer)
{
	SilikoSyntaxTreeNode *value;

	switch(lexer->Token.Type)
	{
	case '-':
	case SILIKO_TOK_INTEGER:
	case SILIKO_TOK_FLOAT:
		return GetNumber(lexer);
	case '(':
		SilikoLexerNext(lexer);
		if (!(value = GetExprAddSub(lexer)))
			return NULL;

		if (lexer->Token.Type != ')')
		{
			SilikoSyntaxTreeDelete(value);
			return SilikoSyntaxTreeNewError();
		}
		SilikoLexerNext(lexer);
		return value;
	case SILIKO_TOK_ID:
		return GetFCall(lexer);
	default:
		return SilikoSyntaxTreeNewError();
	}
}
예제 #18
0
/**
 * Compares name to passed in one. Sort is alphabetical ascending.
 *
 * @param	Other	Name to compare this against
 * @return	< 0 is this < Other, 0 if this == Other, > 0 if this > Other
 */
int32 FName::Compare( const FName& Other ) const
{
    // Names match, check whether numbers match.
    if( GetComparisonIndexFast() == Other.GetComparisonIndexFast() )
    {
        return GetNumber() - Other.GetNumber();
    }
    // Names don't match. This means we don't even need to check numbers.
    else
    {
        TNameEntryArray& Names = GetNames();
        const FNameEntry* const ThisEntry = GetComparisonNameEntry();
        const FNameEntry* const OtherEntry = Other.GetComparisonNameEntry();

        // Ansi/Wide mismatch, convert to wide
        if( ThisEntry->IsWide() != OtherEntry->IsWide() )
        {
            return FCStringWide::Stricmp(	ThisEntry->IsWide() ? ThisEntry->GetWideName() : StringCast<WIDECHAR>(ThisEntry->GetAnsiName()).Get(),
                                            OtherEntry->IsWide() ? OtherEntry->GetWideName() : StringCast<WIDECHAR>(OtherEntry->GetAnsiName()).Get() );
        }
        // Both are wide.
        else if( ThisEntry->IsWide() )
        {
            return FCStringWide::Stricmp( ThisEntry->GetWideName(), OtherEntry->GetWideName() );
        }
        // Both are ansi.
        else
        {
            return FCStringAnsi::Stricmp( ThisEntry->GetAnsiName(), OtherEntry->GetAnsiName() );
        }
    }
}
예제 #19
0
double ScriptToken::GetNumericRepresentation(bool bFromHex)
{
	double result = 0.0;

	if (CanConvertTo(kTokenType_Number))
		result = GetNumber();
	else if (CanConvertTo(kTokenType_String))
	{
		const char* str = GetString();

		if (!bFromHex)
		{
			// if string begins with "0x", interpret as hex
			Tokenizer tok(str, " \t\r\n");
			std::string pre;
			if (tok.NextToken(pre) != -1 && pre.length() >= 2 && !_stricmp(pre.substr(0, 2).c_str(), "0x"))
				bFromHex = true;
		}

		if (!bFromHex)
			result = strtod(str, NULL);
		else
		{
			UInt32 hexInt = 0;
			sscanf_s(str, "%x", &hexInt);
			result = (double)hexInt;
		}
	}

	return result;
}
예제 #20
0
void KVIdentificationResult::Print(Option_t* ) const
{
	printf("Identification #%d  -  Type:%s ", GetNumber(), GetIDType());
	if(!IDattempted) {
		printf("   => not attempted\n\n");
		return;
	}
	if(IDOK) printf("   => SUCCESS\n");
	else printf("   => FAILURE\n");
	printf("  Quality code = %d (%s)\n", IDquality, GetLabel());
	if(Zident) printf("  Z identified = %d", Z);
    else printf("  Z returned = %d", Z);
	if(Aident) printf("    A identified = %d", A);
    else printf("  A returned = %d", A);
    if(Zident||Aident) printf("    PID = %f\n", PID);
    printf("  delta-E pedestal : ");
    switch(deltaEpedestal){

        case deltaEpedestal_NO:
        printf("NO\n");
        break;

        case deltaEpedestal_YES:
        printf("YES\n");
        break;

        default:
        case deltaEpedestal_UNKNOWN:
        printf("UNKNOWN\n");
        break;
    }
}
예제 #21
0
파일: script.cpp 프로젝트: svkaiser/TurokEX
void kexLexer::AssignFromTokenList(const sctokens_t *tokenlist, unsigned short *var, int id, bool expect) {
    if(expect) {
        ExpectTokenListID(tokenlist, id);
    }
    ExpectNextToken(TK_EQUAL);
    *var = GetNumber();
}
예제 #22
0
파일: SLIDER.C 프로젝트: mrchurrisky/chaos
int ProcessSlider(slider * s, int current_item)
{
	double d = s->value;
	int i;

	if (current_item == 1)
	{
		if (GetNumber(&s->TB, &d, GS_FLOAT, s->min, s->max))
		{
			s->value = d;
			reposition_slider_v(s, false);
		}
		return 2;
	}
	if (current_item == 0)
		return 0;

	for (i = 0; i < 6; i++)
	{
		if (current_item - 2 == i)
		{
			s->value += slider_increments[i];
			reposition_slider_v(s, false);
			return 1;
		}
	}
	return 0;
}
예제 #23
0
/*********************************************************
*函数名:    Print()
*函数功能:  输入单个图书的全部信息
*
*函数参数:  void
*函数返回值:void
*********************************************************/
void Book::Print()
{
    cout <<  GetISBN()  << '\t'  << GetTitle() << '\t';
    cout << GetAuthor() << '\t'  << GetPublisher() << '\t';
    cout << GetDate() << '\t' << GetPrice();
    cout << setw(10) << GetCatalogNum() << setw(11) << GetNumber() << endl;
}
예제 #24
0
//++ ------------------------------------------------------------------------------------
// Details: Parse the command's argument options string and try to extract the value *this
//          argument is looking for.
// Type:    Overridden.
// Args:    vwArgContext    - (RW) The command's argument options string.
// Return:  MIstatus::success - Functional succeeded.
//          MIstatus::failure - Functional failed.
// Throws:  None.
//--
bool
CMICmdArgValThreadGrp::Validate(CMICmdArgContext &vwArgContext)
{
    if (vwArgContext.IsEmpty())
        return m_bMandatory ? MIstatus::failure : MIstatus::success;

    if (vwArgContext.GetNumberArgsPresent() == 1)
    {
        const CMIUtilString &rArg(vwArgContext.GetArgsLeftToParse());
        if (IsArgThreadGrp(rArg) && ExtractNumber(rArg))
        {
            m_bFound = true;
            m_bValid = true;
            m_argValue = GetNumber();
            vwArgContext.RemoveArg(rArg);
            return MIstatus::success;
        }
        else
            return MIstatus::failure;
    }

    // More than one option...
    const CMIUtilString::VecString_t vecOptions(vwArgContext.GetArgs());
    CMIUtilString::VecString_t::const_iterator it = vecOptions.begin();
    while (it != vecOptions.end())
    {
        const CMIUtilString &rArg(*it);
        if (IsArgThreadGrp(rArg) && ExtractNumber(rArg))
        {
            m_bFound = true;

            if (vwArgContext.RemoveArg(rArg))
            {
                m_bValid = true;
                m_argValue = GetNumber();
                return MIstatus::success;
            }
            else
                return MIstatus::failure;
        }

        // Next
        ++it;
    }

    return MIstatus::failure;
}
예제 #25
0
const Char_t *KVHarpeeSi::GetEBaseName() const{
	// Base name of the energy used to be compatible
	// GANIL acquisition parameters
	//
	// The base name is "E<type><number>".
	
	return Form("%sE_%.2d",GetType(),GetNumber());
}
예제 #26
0
// try to use the name, if no name, then use the number
NS_IMETHODIMP
nsJSID::ToString(char **_retval)
{
    if (mName && mName != gNoString)
        return GetName(_retval);

    return GetNumber(_retval);
}
FunctionNode2D::FunctionNode2D(std::string & s){
    if(s[0]=='N'){
        f=Identity;
        s.erase(s.begin());s.erase(s.begin());
        float n=stof(GetNumber(s));s.erase(s.begin());
        float sigma=stof(GetNumber(s));
        _Inside=new NormalNode2D(n,sigma);
    }
    else{
        if(s[0]=='e' && s[1]=='x' && s[2]=='p') f=exp;
        else if(s[0]=='s' && s[1]=='i' && s[2]=='n') f=sin;
        else if(s[0]=='c' && s[1]=='o' && s[2]=='s') f=cos;
        else if(s[0]=='l' && s[1]=='o' && s[2]=='g') f=log;
        std::string T=GetContentFunc(s);
        _Inside=Eval2D(T);
    }
}
예제 #28
0
UDPMetadata* Server::ExtractMetadataUDP(char* rawMetadata)
{
	auto metadata = new UDPMetadata();
	auto index = 0;
	while (rawMetadata[index] != METADATA_DELIM) metadata->fileName += rawMetadata[index++];
	metadata->requestFileSize = rawMetadata[++index] == 1;
	auto missedPackagesCount = GetNumber(rawMetadata, ++index);
	metadata->returnAllPackages = missedPackagesCount == REQUEST_ALL_PACKAGES;
	if (metadata->returnAllPackages) return metadata;
	for (auto count = 0; count < missedPackagesCount; count++) {
		index += UDP_NUMBER_SIZE;
		metadata->missedPackages.push_back(GetNumber(rawMetadata, index));
	}
	std::cout << metadata->missedPackages.size() << "  " << metadata->missedPackages[0] << std::endl;

	return metadata;
}
예제 #29
0
void createImage2D(v8::FunctionArgs args)
{
    auto context = cl_context(UnwrapPointer(args[0]));
    auto flags = GetNumber(args[1]);
    auto format = GetObject(args[2]);
    auto width = GetNumber(args[3]);
    auto height = GetNumber(args[4]);
    auto data = UnwrapPointer(args[6]);
    
    cl_image_format clFormat;
    clFormat.image_channel_data_type = GetNumber(format->Get(v8::NewString("image_channel_data_type")));
    clFormat.image_channel_order = GetNumber(format->Get(v8::NewString("image_channel_order")));

    auto err = 0;
    auto image = clCreateImage2D(context, flags, &clFormat, width, height, 0, data, &err);
    args.GetReturnValue().Set(v8::WrapPointer(image));
}
예제 #30
-7
파일: parsing.c 프로젝트: v923z/megawifi
uint16_t GetIndex(uint8_t **pos) {
	uint8_t ss;
	RemoveWhiteSpace(pos);
	ss = *((*pos)++);
	if(ss != 'v') return(65535);
	return(GetNumber(pos));
}