Skip to main content
Главная страница » Football » Ohod (Saudi Arabia)

Ohod FC: Saudi Professional League - Squad, Achievements & Stats

Overview of Ohod Football Team

The Ohod football team, based in Saudi Arabia, competes in the Saudi Professional League. Known for its dynamic playing style and strategic formations, Ohod has been a significant contender in the league. The team is currently managed by Coach [Manager’s Name], who has been instrumental in shaping the squad’s current tactics and strategies.

Team History and Achievements

Since its founding in [Year Founded], Ohod has experienced several notable seasons. The team has secured multiple league titles and domestic cups, showcasing their prowess on the field. Noteworthy achievements include winning the [Specific Title] in [Year] and consistently finishing in the top positions of the league standings.

Current Squad and Key Players

The current squad features a blend of experienced veterans and promising young talents. Key players include [Player Name 1] as a forward, known for his goal-scoring ability, and [Player Name 2] as a midfielder, recognized for his playmaking skills. Their performances have been pivotal in recent matches.

Team Playing Style and Tactics

Ohod employs a versatile formation, often switching between 4-3-3 and 4-4-2 to adapt to different opponents. Their strategy focuses on maintaining possession and quick transitions from defense to attack. Strengths include strong midfield control and effective counter-attacks, while weaknesses may lie in set-piece defense.

Interesting Facts and Unique Traits

Ohod is affectionately known as “The Lions” due to their fierce playing style. The fanbase is passionate, often filling the stadium with vibrant support. Rivalries with teams like Al-Hilal add an extra layer of excitement to their matches.

Frequently Asked Questions

  • What is Ohod’s current league position?

    As of the latest update, Ohod is positioned at [Position] in the Saudi Professional League standings.

  • Who are Ohod’s top goal scorers?

    [Player Name 1] leads the team with [Number] goals this season, followed closely by [Player Name 2].

  • What are some key upcoming matches for Ohod?

    Ohod’s next matches include games against [Team A] on [Date] and [Team B] on [Date]. These fixtures are crucial for their league aspirations.

Lists & Rankings of Players and Performance Metrics

  • TOP GOAL SCORERS:
    • [Player Name 1]: 🎰[Goals]
    • [Player Name 2]: 🎰[Goals]
  • MOST ASSISTS:
    • [Player Name 3]: 💡[Assists]
    • [Player Name 4]: 💡[Assists]

Comparisons with Other Teams in the League

In comparison to other top teams like Al-Ain FC and Al-Nassr FC, Ohod stands out due to their balanced attack-defense strategy. While Al-Ain excels in offensive play, Ohod’s tactical flexibility gives them an edge in adapting to different match scenarios.

Case Studies or Notable Matches

A memorable match was against Al-Hilal where Ohod secured a stunning victory through a last-minute goal by [Player Name]. This game highlighted their resilience and ability to perform under pressure.

Team Stats Summary
Total Goals Scored Total Goals Conceded Last Five Matches Form Odds for Next Match
[Goals Scored] [Goals Conceded] [W-D-L] [Odds]

Tips & Recommendations for Betting Analysis

To maximize betting potential on Ohod matches:

  • Analyze recent form trends before placing bets.
  • Consider head-to-head records against upcoming opponents.
  • Leverage player statistics like goals scored or assists made during critical matches.

“Ohod’s tactical acumen makes them unpredictable opponents,” says former coach [Expert Name]. “Their ability to adapt mid-game often catches rivals off guard.”

Pros & Cons of Current Team Form or Performance

    Potential Advantages (✅):
    – Strong midfield control
    – Effective counter-attacking strategy
    Potential Disadvantages (❌):
    – Vulnerability during set-pieces
    – Occasional inconsistency in away games

Betting Tips: Analyzing Ohod’s Potential at Betwhale!

To get started with betting on Ohod:

  1. Analyze past performance data focusing on wins/losses ratio over recent months.
  2. Evaluate key player performances such as goals scored by top strikers.
  3. Cross-reference head-to-head records against immediate rivals.
  4. Stay updated with injury reports that might affect starting line-ups.
  5. Leverage expert analysis to gauge likely outcomes based on current form.
  6. #include “test.h”
    #include “utils.h”

    void testUtils()
    {
    std::cout << "nTest utils:n";

    test("utils::readFile", []() {
    std::string path = "./tests/utils/test.txt";
    std::string expected = "This is testn";
    std::string result = utils::readFile(path);

    assert(result == expected);
    });

    test("utils::writeFile", []() {
    std::string path = "./tests/utils/test.txt";
    std::string text = "This is testn";
    utils::writeFile(path,text);

    assert(utils::readFile(path) == text);

    utils::removeFile(path);
    });
    }alexander-dunst/Compiler<|file_sep#include "test.h"
    #include "ast.h"

    void testAST()
    {
    std::cout <getChildren().size() == 0);

    assert(node.getChildren()[0]->getChildren().size() == 0);

    assert(node.getChildren()[0]->getChildren()[0]->getChildren().size() == 0);

    assert(node.getChildren()[0]->getChildren()[1]->getChildren().size() == 1);

    });

    test(“astTree creation”, []() {

    assert(astTree.getNodes().size() == astTree.getAllNodes().size());

    for(int i=0; igetId()==10)
    {
    for(int j=0; jgetChildren().size();j++)
    {
    if(astTree.getAllNodes()[i]->getChildren()[j]->getId()==20)
    {
    for(int k=0; kgetChildren()[j]->getChildren().size();k++)
    {
    if(astTree.getAllNodes()[i]->getChildren()[j]->getChildren()[k]->getId()==30)
    {
    for(int l=0; lgetChildren()[j]->getChildren()[k]->getChildren().size();l++)
    {
    if(astTree.getAllNodes()[i]->getChildren()[j]->getChildren()[k]->getChildren()[l]==NULL)
    break;
    else
    assert(false);
    }
    }
    else if(astTree.getAllNodes()[i]->getChildren()[j]->getChildren()[k]==NULL)
    break;
    else
    assert(false);
    }
    }
    else if(astTree.getAllNodes()[i]->getChildren()[j]==NULL)
    break;
    else
    assert(false);
    }
    }
    else if(astTree.getAllNodes()[i]==NULL)
    break;
    else
    assert(false);
    }

    astNode* temp = astTree.getNodeById(10);
    temp->addChild(new astNode(40));
    temp->addChild(new astNode(50));

    temp->getChildById(40)->addChild(new astNode(60));
    temp->getChildById(50)->addChild(new astNode(70));

    assert(temp->getChildById(-100)==NULL);

    astNode* temp_1 = astTree.getNodeById(-10000000);

    temp_1->removeChildByValue(-10000000);

    astNode* temp_5 = new astNode(-10000000);

    delete temp_5;

    };

    void testASTGen()
    {
    std::cout <getAllNodes();

    auto nids = gen.getAst()->getAllIds();

    auto types = gen.getAst()->getAllTypes();

    bool assert_nids_size = false;
    bool assert_types_size = false;

    for(auto it:nids){
    if(it!=nodes.size())
    continue;
    else
    assert_nids_size=true;
    break;
    }

    for(auto it:types){
    if(it!=nodes.size())
    continue;
    else
    assert_types_size=true;
    break;
    }

    assert(assert_nids_size && assert_types_size);

    assert(nodes.size()==types.size());

    assert(nids.size()==nodes.size());

    for(int i=0;igetNodeById(nodes[nodes.size()-1])!=NULL);

    assert(gen.getAst()->getNodeById(nodes[nodes.size()-5])!=NULL);

    assert(gen.getAst()->getNodeById(nodes[nodes.size()-5])->getType()==”IfStatement”);

    assert(gen.getAst()->getNodeById(nodes[nodes.size()-5])->getChildById(nodes[nodes.size()-6])->getType()==”Expression”);

    assert(gen.getAst()->getNodeById(nodes[nodes.size()-5])->getChildById(nodes[nodes.size()-6])->getChildById(nodes[nodes.size()-7])->getType()==”BoolConst”);

    assert(gen.getAst()->getNodeById(nodes[nodes.size()-5])->getChildById(nodes[nodes.size()-6])->getChildByValue(true)!=NULL);

    assert(gen.getAst()->getNodeById(nodes[nodes.size()-5])->getChildByValue(true)!=NULL);

    gen.removeAll();

    });

    };alexander-dunst/Compiler<|file_sep`.PHONY: all clean run_tests build_tests build_doc build_parser build_interpreter

    all: build_parser build_interpreter

    clean:
    rm -rf ./build/*
    rm -rf ./docs/html/*

    run_tests:
    cd tests && make run_tests && cd ../

    build_tests:
    cd tests && make build_tests && cd ../

    build_doc:
    doxygen Doxyfile

    build_parser:
    mkdir -p ./build/parser/
    g++ src/parser.cpp src/lexer.cpp src/scanner.cpp src/token.cpp src/tokenizer.cpp src/utils.cpp -o ./build/parser/parser.out

    build_interpreter:
    mkdir -p ./build/interpreter/
    g++ src/main.cpp src/parser.cpp src/lexer.cpp src/scanner.cpp src/token.cpp src/tokenizer.cpp src/utils.cpp
    src/interpreter/scope_manager.cpp
    src/interpreter/context_manager.cpp
    src/interpreter/context_stack_manager.cpp
    src/interpreter/scope_stack_manager.cpp
    src/interpreter/type_checker_visitor.cpp
    src/interpreter/type_checker_context_visitor_base_class_template_specialization_for_all_data_types_and_scopes_except_function_and_class.hpp
    src/interpreter/type_checker_context_visitor_base_class_template_specialization_for_function_scope.hpp
    src/interpreter/type_checker_context_visitor_base_class_template_specialization_for_class_scope.hpp
    src/interpreter/function_caller_visitor.hpp
    src/utils/file_watcher.hpp -std=c++17 -pthread -o ./build/interpreter/compiler.out

    run:
    build_parser && ./build/parser/parser.out tests/tests_files/test.spl

    compile_spl:
    build_parser && ./build/parser/parser.out $@ –output=./[email protected]

    interpret_spl: compile_spl
    build_interpreter && ./build/interpreter/compiler.out [email protected]

    interpret_test_file: compile_spl
    build_interpreter && ./build/interpreter/compiler.out $@ –input=./$@ –output=./$@ –debug-mode –log-file=./$@_log.txt

    interpret_file_with_log: compile_spl
    build_interpreter && ./build/interpreter/compiler.out $@ –input=./$@ –output=./$@ –log-file=./$@_log.txt

    interpret_file_with_debug_mode_and_log: compile_spl
    build_interpreter && ./build/interpreter/compiler.out $@ –input=./$@ –output=./$@ –debug-mode –log-file=./$@_log.txt <|file_sep#include "../src/utils/file_watcher.hpp"

    int main()
    {
    file_watcher watcher("./tests/files_to_watch/");
    watcher.watch();
    }alexander-dunst/Compiler true | false | boolVarName | boolExpr | !boolExpr | boolExpr AND boolExpr | boolExpr OR boolExpr // precedence order : ! > AND > OR
    int -> intVal | intVarName | intExpr + intExpr | intExpr * intExpr // precedence order : * > +
    float -> floatVal | floatVarName | floatExpr + floatExpr | floatExpr * floatExpr // precedence order : * > +
    char -> charVal (‘a’..’z’, ‘A’..’Z’) | charVarName // no operators supported yet!
    str -> strVal (“str”) | strVarName // no operators supported yet!

    boolVal -> true/false
    intVal -> integer value [-2147483648..2147483647]
    floatVal -> decimal value [-2147483648..2147483647]
    charVal -> character value [‘a’..’z’, ‘A’..’Z’] (single character string literal)
    strVal -> string value [“str”] (arbitrary string literal)

    varName -> variable name ([a-zA-Z][a-zA-Z_][a-zA-Z0-9_]*)

    ### Expressions:

    ifStatement -> IF ‘(‘ expr ‘)’ ‘{‘ stmtList ‘}’
    whileStatement -> WHILE ‘(‘ expr ‘)’ ‘{‘ stmtList ‘}’
    doWhileStatement -> DO ‘{‘ stmtList ‘}’ WHILE ‘(‘ expr ‘)’
    breakStatement ->
    continueStatement ->
    returnStatement ->
    printStatement ->
    assignStatemnt ->
    functionCallExpression ->
    funcDeclaration ->
    classDeclaration ->
    classObjectCreationExpression ->
    classMethodCallExpression ->
    arrayCreationExpression ->
    arrayElementAccessExpression –

    ### Scopes:

    #### Global scope:

    c++
    // global scope declaration example:
    bool b; // global variable declaration example
    int i; // global variable declaration example
    float f; // global variable declaration example
    char c; // global variable declaration example
    str s; // global variable declaration example

    func void foo(bool b,int i,float f,char c,str s){} // function declaration example (function parameter list can be empty!)
    class Bar{ /*…*/ }; // class declaration example

    foo(b,i,f,c,s); // function call expression example

    Bar bar_obj; // object instantiation expression example

    bar_obj.bar_method(); // method call expression example

    arr[int]; // array creation expression example

    arr[expr]; // array element access expression example

    #### Function scope:

    c++
    // function scope declaration examples:
    func void foo(bool b,int i,float f,char c,str s){

    bool b_local; // local variable declaration inside function scope
    int i_local; // local variable declaration inside function scope
    float f_local; // local variable declaration inside function scope
    char c_local; // local variable declaration inside function scope
    str s_local; // local variable declaration inside function scope

    func void foo_nested(bool b,int i,float f,char c,str s){} /* nested functions not allowed! */

    bar_obj.bar_method(); /* method calls allowed only from object instantiation expressions */

    arr[int]; /* arrays not allowed */

    arr[expr]; /* array element access expressions not allowed */

    b=b_local;b=i_local;b=f_local;b=c_local;b=s_local;// assignment statements allowed only between variables declared within same scope!
    b=b_expr;b=i_expr;b=f_expr;b=c_expr;b=s_expr;// assignment statements allowed only between variables declared within same scope!
    b=b_funcCall;b=i_funcCall;b=f_funcCall;b=c_funcCall;b=s_funcCall;// assignment statements allowed only between variables declared within same scope!

    if(expr){stmtList} else {stmtList}// if statement syntax

    while(expr){stmtList}// while statement syntax

    do{stmtList}while(expr)// do while statement syntax

    break;// break statement syntax

    continue;// continue statement syntax

    return;// return statement syntax

    print(expr);// print statement syntax

    }/* end of function body */

    #### Class Scope:

    c++
    // class body examples:
    class Foo{

    bool b_member_var ;// member varialbe declartion examples

    int i_member_var ;// member varialbe declartion examples

    float f_member_var ;// member varialbe declartion examples

    char c_member_var ;// member varialbe declartion examples

    str s_member_var ;// member varialbe declartion examples

    func void foo_member_method(bool b,int i,float f,char c,str s){// member method definition examples

    bool b_local_var;// local variable definition examples

    int i_local_var;// local variable definition examples

    float f_local_var;// local variable definition examples

    char c_local_var;// local variable definition examples

    str s_local_var;// local variable definition examples

    func void foo_nested_member_method(bool b,int i,float f,char c,str s){// nested functions not allowed!

    b=b_member_var;i=i_member_var;i=i_local_var;i=f_member_var;i=f_local_var;i=c_member_var;i=c_local_var;i=s_member_var;i=s_local_var;// assignment statements allowed only between variables declared within same scope!
    b=b_expr;i=i_expr;i=i_expr;i=f_expr;i=f_expr;i=c_expr;i=c_expr;i=s_expr;i=s_expr;// assignment statements allowed only between variables declared within same scope!
    b=b_funcCall;i=i_funcCall;i=i_funcCall;i=f_funcCall;i=f_funcCall;i=c_funcCall;i=c_funcCall;;s=s_funcCall;s=s_funcCall;// assignment statements allowed only between variables declared within same scope!

    if(expr){stmtList} else {stmtList}// if statement syntax

    while(expr){stmtList}// while statement syntax

    do{stmtList}while(expr)// do while statement syntax

    break;// break statement syntax

    continue;// continue statement syntax

    return;// return statement syntax

    print(expr);// print statment sytax

    }

    }/* end of member method body */

    }/* end of class body */

    ## Example program:

    spl

    globalScopeExample(){

    bool x=false;

    x=!x;

    print(x);print(x+true);print(x+x*x);print(!x+x*x);print(!x+!x*x*x);print((!x)+(!x)*(!x)*(!x));print((!true)+(!true)*(!true)*(!true));print((false)+false*(false)*(false));print(true+true*(true)*(true));

    }

    main(){

    globalScopeExample();

    }

    ## Output:

    ![output](https://github.com/AlexanderDunst/SPL/blob/master/docs/output.png)alexander-dunst/Compiler<|file_sep#include "../src/scanner.hpp"
    #include "../src/tokenizer.hpp"
    #include "../src/token.hpp"
    #include "../src/utils.hpp"

    #define _CRT_SECURE_NO_WARNINGS

    using namespace std;

    std::vector<std::pair> scannerTests =
    {
    {“const”,”const”},
    {“const “,” const”},
    {“const t”,” const”},
    {“const r”,” const”},
    {“const n”,” const”},
    {“consttrn”,” const”},
    {“consttrn “,” const”},

    {“auto”,”auto”},
    {“auto “,” auto”},
    {“auto t”,” auto”},
    {“auto r”,” auto”},
    {“auto n”,” auto”},
    {“autotrn”,” auto”},
    {“autotrn “,” auto”},

    {“void”,”void”},
    {“void “,” void”},
    {“void t”,” void”},
    {“void r”,” void”},
    {“void n”,” void”},
    {“voidtrn”,” void”},
    {“voidtrn “,” void”},

    {“struct”,”struct”},
    {“struct “,” struct”},
    {“struct t”,” struct”},
    {“struct r”,” struct”},
    {“struct n”,” struct”},
    {“structtrn”,” struct”},
    {“structtrn “,” struct”},

    {“.spl”,”u000Du000Au000Du000A.”},
    {“.spl “, “.u000Du000Au000Du000A.”},
    {“.splt”,”u000Du000Au000Du000A.”},
    {“.splr”,”u000Du000A.u000Du000A.”},
    {“.spln”,”u000D.u000DA.u000Du200B.”},
    {“.spltrn”,”u200B.u200B.u200B.”},
    {“.spltrn “,”u200B.u200B.u200B.”},

    “this”,
    “This”,
    “THIS”,
    “this “,
    “This “,
    “THIS “,
    “this “,
    “This “,
    “THIS “,

    “new”,
    “New”,
    “NEW”,
    “new “,
    “New “,
    “NEW “,
    “new “,
    “New “,
    “NEW “,

    “class”,
    “class “,
    “classt”,
    “classr”,
    “classn”,
    “classtrn”,
    “classtrn “,

    “struct”,
    “struct “,
    “structt”,
    “structr”,
    “structn”,
    “structtrn”,
    “structtrn “,

    “{“, “{t”, “{r”, “{n”, “{trn”, “{trn “,

    “}”, “}t”, “}r”, “}n”, “}trn”, “}trn “,

    “;”,{ “;”,”t;”, “r;”, “n;”, “t;rn;”, “t;r;n;” },

    “((“, “((“, “((“, “((“, “((“, “((“, “((“,

    “){)”, “{)”, “{)”, “{)”, “{)”, “{)”, “{)”, “{)”,

    “[[]]”, “[[]]”, “[[]]”, “[[]]”, “[[]]”, “[[]]”, “[[]]”, “[[]]”,

    “+=”, “+=”, “+=”, “+=”, “+=”, “+=”, “+=”, “+=”,

    “-=”, “-=”, “-=”, “-=”, “-=”, “-=”, “-=”, “-=”,

    “*=”, “*=”, “*=”, “*=”, “*=?”, “*?”, “*?”, “*?”,

    “/ =”, “/ =”, “/ =”, “/ =”, “/ ?”, “/ ?”, “/ ?”, “/ ?”,

    “% =”, “% =”, “% =”, “% =”, “% ?”, “% ?”, “% ?”, “% ?”,

    “& =”, “& =”, “& =”, “& =”, “& ?”, “& ?”, “& ?”, “& ?”,

    “| =”, “| =”, “| =”, “| =”, “| ?”, “| ?”, “| ?”, “| ?”,

    “^ =”, “^ =”, “^ =”, “^ =”, “^ ?”, “^ ?”, “^ ?”,

    “< <", "< <", "< <", "< <", "< <", "< <", "< >”, “> >”, “> >”, “> >”, “> >”, “> >”, “> >”,

    “<<", "<<", "<<", "<<", "<>”, “>>”, “>>”, “>>”,

    “,”, “,”, “,”, “,”, “,”, “,”, “,”,

    “”, “”, “”, “”, “”, “”, “”, “”,

    “#include “””,”#include “””,”#include “””,”#include “””,”#include “””,”#include “””,”#include “””, “#include “””, “#include “””,

    “#define “” “””,”#define “” “””,”#define “” “””,”#define “” “””,”#define “” “””,”#define “” “””,”#define “” “”””, “#define “””” “#define “””” “#define “”””

    “{“,””,””,””,””,””,””,””,””,

    “}”,””,””,””,””,””,””,””,””,

    “;”,””,””,””,””,””,””,””,””,

    “+”,”+”,”+”,”+”,”+”,”+”,”+”,”+”,

    “-“,”-“, “-“, “-“, “-“, “-“, “-“, “-“,

    “*”,”+*”, “*+”, “*”, “+*”, “*”, “*”, “+”*, “*”, “*”, “+”*, “*”, “*”, “+”*, “*” , “+”*, “*” , “+”*, “*” , “+”*, “*” , “+”*, “*” , “+”*, “*” ,

    “/”,”+/”, “/+”, “/”, “+/”, “/”, “/”, “+/”, “/”, “/”, “+/”, “/”, “/”, “+/”, “/” , “+/”, “/” , “+/”, “/” , “+/”, “/” , “+/”, “/” , “+/”, “/” ,

    “%”,”+%”, “%+”, “%+”, “%+”, “%+”, “%+”, “%” ,

    “&”,”+&”,&+,&+,&+,&+,&+,&+,&+,&+,&+,&+,&+,&+,

    “|”,”+|” ,”|” ,”|” ,”|” ,”|” ,”|” ,”|” ,

    “^”,”+^”,@”^”,@”^,@^,@^,@^,@^,@^,@^,

    “<="+,"=<+","+=<,+="<,+="<,+="<,+="<,+="<,+="<,+="=”+,”>==,<+=","+=",

    "<<="+,"<<=<,+<<=<,+<<=<,+<<=<,+<<=<,+<<=>”+,”>>=,<+=",

    "”+”=”,

    “:=”++”:=”,

    “‘a'”, “‘a'”, “‘a'”, “‘a'”, “‘a'”, “‘a'”, “‘a'”, “‘a'”,

    ‘”abc”‘, ‘”abc”‘, ‘”abc”‘, ‘”abc”‘, ‘”abc”‘, ‘”abc”‘, ‘”abc”‘, ‘”abc”‘,

    “‘\””,””,””,””,””,””,””,””,

    ‘”\”‘,”\””,”\””\”” “\”” “\”” “\”” “\”” “\”” “\”” “\””,

    “‘\”\””,’\””,’\””,’\””,’\””,’\””,’\””,’\””,

    ‘”\”\\\”‘,”\\””\”\” “\””\”\” “\””\”\” “\””\”\” “\””\”\” “\””\”\” “\””\”\” “‘,

    “‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_” ,’abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_’,

    “‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_'”,’abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_’,

    “‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789’_”,’abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_’,

    “‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789’_”,’abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_’,

    “(defun (defun defun defun defun defun defun defun defun “,

    “(defvar (defvar defvar defvar defvar defvar defvar defvar defvar “,

    “(defparameter (defparameter defparameter defparameter defparameter defparameter defformal parameter defformal parameter defformal parameter “,

    “(deftype (deftype deftype deftype deftype deftype deftype deftype deftype “,

    “(flet ((flet ((flet ((flet ((flet ((flet ((flet ((flet ((“,

    “(labels ((labels ((labels ((labels ((labels ((labels ((“,

    “(lambda () () () () () () () () ())”,(lambda lambda lambda lambda lambda lambda lambda lambda (),

    “(loop for loop for loop for loop for loop for loop for loop for loop “,

    “*foo*” ,”*foo*” ,”*foo*” ,”*foo*” ,”*foo*” ,”*foo*” ,”*foo*” ,”*foo*”,

    “&optional (&optional (&optional (&optional (&optional (&optional (&optional (&optioinal (&optioinal (&optioinal (&optioinal (

    “&rest (&rest (&rest (&rest (&rest (&rest (&rest (&reest (&reest (&reest(&reest (“,

    “&key (&key &key &key &key &key &key &key &key &keey y(&keey y(&keey y(&keey y(&keey y(&keey y(&keey y(&keey y(

    “&auxiliary-functions((&auxiliary-functions((&auxiliary-functions((&auxiliary-functions((&auxiliary-functions((&auxiliary-functions((&auxfunctions((&auxfunctions((&auxfunctions((&auxfunctions(“&),

    “@arglist @arglist @arglist @arglist @arglist @arglist @arglist @arglist”

    };

    std::vector<std::pair<std::vector<std::pair>,std::__cxx11::
    std:string>> tokenizerTests =
    {

    {{ {“identifer”},{“identifier”} } },
    {{ {“123”},{“123”} } },
    {{ {“123456789”},{“123456789”} } },
    {{ {“12345678909876543211234”},{“12345678909876543211234”} } },

    {{ {“identifer”},{“identifier”} },
    {{ “{“},{“left_bracket”} } },
    {{ “}”,”right_bracket”} },

    {{ “{“},{“left_bracket”} },
    {{ “}”,”right_bracket”} },
    {{ “;”},{“semicolon”} },

    {{ “{“},{“left_bracket”} },
    {{ “}”,”right_bracket”} },
    {{ “;”},{“semicolon”} },

    {{ “{“},{“left_bracket”} },
    {{ “}”,”right_bracket”} },
    {{ “;”},{“semicolon”} },

    };

    int main()
    {

    for(size_t x=0;x<scannerTests.size();x++){

    std::__cxx11::
    std:string tokenizedString(scannerTests[x].first.c_str());

    scanner scanner(tokenizedString.c_str());

    scanner.scanTokens();

    for(size_t x=0;x<scanner.tokens_.tokens_.size();x++){

    if(scanner.tokens_[x].tokenType==TokenType::_ERROR_)
    {

    printf("%s:%d:%d ERROR %s %s %s %s %d %d %d %d %d %d %d,%c%c%c%c%c,%c%c%c%c%c,%c,%c,%c,%c,%c,%ld,%ld,%ld,%ld,%ld,n",__FILE__,__LINE__,scanner.line_,scanner.column_,tokenToString(scanner.tokens_[x].tokenType).data(),scanner.tokens_[x].text_.data(),tokenToString(TokenType::_EOF_).data(),tokenToString(TokenType::_ERROR_).data(),scanner.line_,scanner.column_,scanner.lineStartIndex_,scanner.columnStartIndex_,scanner.columnEndIndex_,static_cast(tokenToString(TokenType::_EOF_).length()),static_cast(tokenToString(TokenType::_ERROR_).length()),static_cast(static_cast(tokenToString(TokenType::_EOF_).length())),static_cast(static_cast(tokenToString(TokenType::_ERROR_).length())),static_cast(static_cast(tokenToString(TokenType::_EOF_).length())),static_cast(static_cast(tokenToString(TokenType::_ERROR_).length())),static_cast(static_cast(tokenToString(TokenType::_EOF_).length())),static_cast(static_cast(tokenToString(TokenType::_ERROR_).length())), static_cast((long long unsigned int)(long long unsigned int)(long long unsigned int)(long long unsigned int)(long long unsigned int)(long long unsigned int) scanner.tokenCount_), static_cast((long long unsigned int)(long long unsigned int)(long long unsigned int)(long long unsigned int)(long long unsigned int)(long long unsigned int) scanner.tokenCount_), static_cast((long long unsigned int)(long long unsigned int)(long long unsigned int)(long long unsigned_int)) scanner.tokenCount_), static_cast((unsigned_long_long_unsigned_int)((unsigned_long_long_unsigned_int)((unsigned_long_long_unsigned_int)((unsigned_long_long_unsigned_int)((unsigned_long_long_unsigned_int)((unsigned_long_long_unsigned_int)) scanner.tokenCount_) );

    exit(EXIT_FAILURE);

    }

    else if(tokenizedString.compare(scanner.tokens_[x].text_)!=0)

    {

    printf(“%s:%d:%d ERROR Expected ‘%s’ but got ‘%s’.%c%s%s%s%s%s%s%s%s%d%d%d%d%d,d,c,b,a,z,x,y,w,v,u,t,s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,z,x,y,w,v,u,t,s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,z,x,y,w,v,u,t,s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,z,x,y,w,v,u,t,s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,z,x,y,w,v,u,t,s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,z,x,y,w,v,u,t,s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,z,x,y,w,v,u,t,s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,z,x,y,w,v,u,t,s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,z,x,y,w,v,u,t,s,r,q,p,o,n,m,l,k,j,i,h,g,f,e,d,c,b,a,nc%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%lf%,nc%x%x%x%x%x%x%x%x%x%x%x%x%,nc%c%c%c%c%c%,nc%c%c%c%c%,ncxcvbnmLKJHGFDSAQWERTYUIOPZXCVBNMlkjhgfdsapoiuytrewmqazxcvbnmx00x01x02x03x04x05x06x07x08x09x00x01x02x03x04%xd8xd8xd8xd8xd8xd8xd8xc6xc6xc6xc6xc6xc6xc6%xd8xd8xd8xd8xd8xd8xa4xa4xa4xa4xa4xa4xa4%xd8xd8xb7xb7xb7xb7xb7xb7%xd88xf3xf3xf3xf3xf3xf38%f%f%f%f%f%f%,nsdfghjklzxcvbnmasdfghjklzxcvbnmasdfghjklzxcvbnmasdfghjklzxcvbnmasdfghjklzxcvbnmasdfghjk