{"id":17796383,"url":"https://github.com/d-plaindoux/lexer-kata","last_synced_at":"2026-01-11T01:48:03.343Z","repository":{"id":142087850,"uuid":"102507181","full_name":"d-plaindoux/lexer-kata","owner":"d-plaindoux","description":null,"archived":false,"fork":false,"pushed_at":"2017-03-26T16:19:28.000Z","size":0,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-07T18:14:12.936Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/d-plaindoux.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-09-05T16:51:53.000Z","updated_at":"2022-12-30T23:58:28.000Z","dependencies_parsed_at":"2023-07-22T16:46:56.447Z","dependency_job_id":null,"html_url":"https://github.com/d-plaindoux/lexer-kata","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-plaindoux%2Flexer-kata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-plaindoux%2Flexer-kata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-plaindoux%2Flexer-kata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d-plaindoux%2Flexer-kata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d-plaindoux","download_url":"https://codeload.github.com/d-plaindoux/lexer-kata/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246747535,"owners_count":20827171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-27T11:45:16.156Z","updated_at":"2026-01-11T01:48:03.335Z","avatar_url":"https://github.com/d-plaindoux.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"Lexer Kata\n==========\n\nFacilitator notice: Introduce steps one at the time.\n\nGoals:\n    - deal with your own legacy: introducing new cases gradualy prevent you\n      from knowing what you will need to handle.\n    - think about the domain: you know intutivly how to do it in your head, but\n      what are the rules ?\n\n\nDescription\n-----------\n\nMake a function/method that given string produce the expected tokens.\n\nPlus operator::\n\n    --- File content ---\n    1+1\n    --- Produced Tokens ---\n    INTEGER \"1\"\n    OPERATOR \"+\"\n    INTEGER \"1\"\n\nMinus operator::\n\n    --- File content ---\n    1-1\n    --- Produced Tokens ---\n    INTEGER \"1\"\n    OPERATOR \"-\"\n    INTEGER \"-1\"\n\nIngore useless spaces::\n\n    --- File content ---\n    1 + 1\n    --- Produced Tokens ---\n    INTEGER \"1\"\n    OPERATOR \"+\"\n    INTEGER \"1\"\n\nLonger integers::\n\n    --- File content ---\n    10 + 10\n    --- Produced Tokens ---\n    INTEGER \"10\"\n    OPERATOR \"+\"\n    INTEGER \"10\"\n\nNegative intergers::\n\n    --- File content ---\n    -1 + 1\n    --- Produced Tokens ---\n    INTEGER \"-1\"\n    OPERATOR \"+\"\n    INTEGER \"1\"\n\nFloats::\n\n    --- File content ---\n    1.0 + 1.0\n    --- Produced Tokens ---\n    FLOAT \"1.0\"\n    OPERATOR \"+\"\n    FLOAT \"1.0\"\n\nStrings::\n\n    --- File content ---\n    \"abc\" + \"def\"\n    --- Produced Tokens ---\n    STRING \"abc\"\n    OPERATOR \"+\"\n    STRING \"def\"\n\nStrings containing spaces::\n\n    --- File content ---\n    \"a b c\" + \"d e f\"\n    --- Produced Tokens ---\n    STRING \"a b c\"\n    OPERATOR \"+\"\n    STRING \"d e f\"\n\nStrings containing escaped newline::\n\n    --- File content ---\n    \"a\\nb\" + \"c\\nd\"\n    --- Produced Tokens ---\n    STRING \"a\\\\nb\"\n    OPERATOR \"+\"\n    STRING \"c\\\\nd\"\n\nStrings containing escaped quote::\n\n    --- File content ---\n    \"\\\"a\\\"\" + \"\\\"b\\\"\"\n    --- Produced Tokens ---\n    STRING \"\\\\\"a\\\\\"\"\n    OPERATOR \"+\"\n    STRING \"\\\\\"b\\\\\"\"\n\nMultiline string::\n\n    --- File content ---\n    \"\"\"a\n    b\"\"\" + \"\"\"c\n    d\"\"\"\n    --- Produced Tokens ---\n    STRING \"a\\nb\"\n    OPERATOR \"+\"\n    STRING \"c\\nd\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-plaindoux%2Flexer-kata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd-plaindoux%2Flexer-kata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd-plaindoux%2Flexer-kata/lists"}