random stuff
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
14
src/test.cpp
14
src/test.cpp
@@ -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;
|
||||||
scullyParser(parser, results.id, new Token(s), cv);
|
try {
|
||||||
|
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);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user