-
Notifications
You must be signed in to change notification settings - Fork 0
cxu2/Expressio
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Ian Treyball (Language Guru) ict2102 Lalka Rieger (Tester) ler2161 Chengtian Xu (System Architect) cx2168 David Han (Team Manager) dth2126 To build our toplevel (expresso.native): $ cd src $ make clean && make To run our compiler (as it stands): $ ./express.native <filename.xp> To run tests: $ ./testall.sh 4/18/2018 For this extended test-suite deliverable, we have 8 positive tests and 3 semantically negative integration tests. The 8 positive tests include: 1. test-hello.xp - Test for printing a string. This test prints: Hello World! 2. test-for1.xp - Test for using a "for" loop. This test loops an integer i from 0 to 4 and prints: 0 1 2 3 4 3. test-while.xp - Test for using a while loop. Expressio does not have the while keyword but still uses the "for" keyword to offer while loops. This test uses integers a and b, and both are set to 1 and 4, respectively. The test uses a while loop with the condition that a < b, and the body of the loop increments a by 1. This test prints: 1 2 3 4. test-continue.xp - Test for using "continue" during a loop. This test uses a for loop to print from 0 to 4, but uses an if statement to check when the loop is at 3 in which "continue" is used to skip the printing of 3. This test prints: 0 1 2 4 5. test-function.xp - Test for using an outside function being called in the main function. This test calls a gcd function defined outside of main and finds and prints the gcd of 2 and 4. This test prints: 2 6. test-dfa.xp - Test for pretty printing a "dfa" type. In this test, a DFA is defined and it is passed to the "printdfa" function which pretty-prints all of the arguments of the dfa. This test prints: nstates: 7 alphabet: 0 1 2 3 4 5 nsym: 6 start: 4 fin: 5 2 nfin: 2 delta: | 0 | 1 | 2 | 3 | 4 | 5 ----|-----|-----|-----|-----|-----|----- 0| 4 -1 -1 -1 -1 -1 1| 3 -1 -1 -1 -1 -1 2| -1 -1 -1 -1 -1 -1 3| -1 -1 -1 -1 -1 -1 4| -1 -1 -1 -1 -1 -1 5| -1 -1 -1 -1 -1 -1 6| -1 -1 -1 -1 -1 -1 7. test-printr.xp - Test for printing a "regexp" type. In this test, several regular expressions are defined and combined to form a larger regular expression, which is passed to the "printr" function which prints the entire regular expression. This test prints: ( a & ( c | ( c ^ a ) ) ) * 8. test-if1.xp - Testing an if statement. In this test, we start with an integer a = 1, and testing if a is greater than or equal to 0. If the test is true, it prints 42. This test prints: 42 The 3 semantically negative integration tests include: 1. fail-break.xp - Semantically checking for the "break" keyword and this test fails because "break" is used outside of a loop. 2. fail-continue.xp - Semantically checking for the "continue" keyword and this test fails because "continue" is used outside of a loop. 3. fail-dfa.xp - Semantically checking the arguments of the "dfa" type. This test fails because the DFA is invalid due to the transition table of the dfa not being a function.
About
Regular Language (Regular Expression/Finite State Machine) Language
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published