random stuff

This commit is contained in:
Markus Hauschild
2013-06-01 22:36:15 +02:00
parent e4d4c06003
commit dccb0a7e97
3 changed files with 15 additions and 5 deletions

View File

@@ -276,6 +276,7 @@ void CodeGenVisitor::visit(RandomForStatement* e) {
llvm::BasicBlock* afterBB = llvm::BasicBlock::Create(llvm::getGlobalContext(), "afterLoop",f); llvm::BasicBlock* afterBB = llvm::BasicBlock::Create(llvm::getGlobalContext(), "afterLoop",f);
prob = builder_->CreateCall(cf,value_,"callTmp");
builder_->CreateCondBr(prob, loopBB, afterBB); builder_->CreateCondBr(prob, loopBB, afterBB);
builder_->SetInsertPoint(afterBB); builder_->SetInsertPoint(afterBB);

View File

@@ -1,10 +1,11 @@
#include <time.h> #include <time.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdbool.h> #include <stdbool.h>
#include <stdio.h>
bool random_if(int p) { bool random_if(int p) {
srand(time(NULL)); //srand(time(NULL));
int r = rand() % 100; int r = rand() % 100;
//printf("Value of r:%d\n",r);
return (r < p); return (r < p);
} }

View File

@@ -30,6 +30,8 @@
#include "lexertl/state_machine.hpp" #include "lexertl/state_machine.hpp"
int main() { int main() {
srand(42);
lexertl::rules rules; lexertl::rules rules;
lexertl::state_machine state_machine; lexertl::state_machine state_machine;
@@ -45,8 +47,10 @@ int main() {
rules.add("string", T_STRING); rules.add("string", T_STRING);
// special characters // special characters
rules.add("\"(\"", T_LPAREN); //rules.add("\"(\"", T_LPAREN);
rules.add("\")\"", T_RPAREN); //rules.add("\")\"", T_RPAREN);
rules.add("dana", T_LPAREN);
rules.add("fox", T_RPAREN);
rules.add("mulder", T_BEGIN); rules.add("mulder", T_BEGIN);
rules.add("scully", T_END); rules.add("scully", T_END);
rules.add(",", T_COMMA); rules.add(",", T_COMMA);
@@ -128,7 +132,11 @@ int main() {
std::string s(results.start, results.end); std::string s(results.start, results.end);
if (results.id != T_WHITESPACE) { if (results.id != T_WHITESPACE) {
//std::cout << "Id: " << results.id << ", Token: " << s << std::endl; //std::cout << "Id: " << results.id << ", Token: " << s << std::endl;
try {
scullyParser(parser, results.id, new Token(s), cv); scullyParser(parser, results.id, new Token(s), cv);
} catch (const char* c) {
std::cerr << "Error: " << c << std::endl;
}
} }
} while (results.id != 0); } while (results.id != 0);