Skip to content

Commit

Permalink
Fizzbuzz in statement mode
Browse files Browse the repository at this point in the history
  • Loading branch information
Wilfred committed Sep 20, 2020
1 parent c9ce5d8 commit f963f19
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 8 deletions.
5 changes: 5 additions & 0 deletions src/sample-programs.test.ts
Expand Up @@ -32,6 +32,11 @@ describe("fizzbuzz", () => {
it("should produce valid syntax with default options", () => {
expectParseSuccess(fizzbuzz(DEFAULT_LANG_OPTS), DEFAULT_LANG_OPTS);
});

it("should produce valid syntax with statements", () => {
const opts = DEFAULT_LANG_OPTS.set("statementTerminator", ";");
expectParseSuccess(fizzbuzz(opts), opts);
});
});

describe("quine", () => {
Expand Down
16 changes: 8 additions & 8 deletions src/sample-programs.ts
Expand Up @@ -25,23 +25,23 @@ export function fizzbuzz(opts: LangOpts): string {
(set i (add i 1))))
`;
} else {
return `(set i 1)
(${opts.whileKeyword} (lte i 20) {
return `i = 1${opts.statementTerminator}
${opts.whileKeyword} (lte i 20) {
${opts.ifKeyword} (equal (mod i 15) 0) {
(print ${opts.stringDelimiter}FizzBuzz${opts.stringDelimiter})
(print ${opts.stringDelimiter}FizzBuzz${opts.stringDelimiter})${opts.statementTerminator}
} else {
${opts.ifKeyword} (equal (mod i 5) 0) {
(print ${opts.stringDelimiter}Buzz${opts.stringDelimiter})
(print ${opts.stringDelimiter}Buzz${opts.stringDelimiter})${opts.statementTerminator}
} else {
${opts.ifKeyword} (equal (mod i 3) 0) {
(print ${opts.stringDelimiter}Fizz${opts.stringDelimiter})
(print ${opts.stringDelimiter}Fizz${opts.stringDelimiter})${opts.statementTerminator}
} else {
(print i)
(print i)${opts.statementTerminator}
}
}
}
(set i (add i 1))
})
i = (add i 1)${opts.statementTerminator}
}
`;
}
}
Expand Down

0 comments on commit f963f19

Please sign in to comment.