some changes + on macos now
This commit is contained in:
parent
c505b9cb2c
commit
69a24132d3
@ -24,7 +24,7 @@
|
|||||||
<link>
|
<link>
|
||||||
<name>programs</name>
|
<name>programs</name>
|
||||||
<type>2</type>
|
<type>2</type>
|
||||||
<location>/home/simon/Documents/Uni/CS/CSCU9A5-2/Ass1/src/a5-triangle-tools/programs</location>
|
<location>/Users/simon/Library/CloudStorage/GoogleDrive-fearrising404@gmail.com/My Drive/Uni/CS/CSCU9A5-2/Ass1/src/a5-triangle-tools/programs</location>
|
||||||
</link>
|
</link>
|
||||||
</linkedResources>
|
</linkedResources>
|
||||||
</projectDescription>
|
</projectDescription>
|
||||||
|
@ -600,9 +600,13 @@ public class ConstantFolder implements ActualParameterVisitor<Void, AbstractSynt
|
|||||||
ie.type = StdEnvironment.integerType;
|
ie.type = StdEnvironment.integerType;
|
||||||
return ie;
|
return ie;
|
||||||
} else if (foldedValue instanceof Boolean) {
|
} else if (foldedValue instanceof Boolean) {
|
||||||
|
//Task 7?
|
||||||
|
System.out.println("Boolean Expr. ");
|
||||||
/* currently not handled! */
|
/* currently not handled! */
|
||||||
}
|
}
|
||||||
}
|
} else {
|
||||||
|
//?
|
||||||
|
}
|
||||||
|
|
||||||
// any unhandled situation (i.e., not foldable) is ignored
|
// any unhandled situation (i.e., not foldable) is ignored
|
||||||
return null;
|
return null;
|
||||||
|
BIN
booleanfold.tam
Normal file
BIN
booleanfold.tam
Normal file
Binary file not shown.
Binary file not shown.
184
gradlew.bat
vendored
184
gradlew.bat
vendored
@ -1,92 +1,92 @@
|
|||||||
@rem
|
@rem
|
||||||
@rem Copyright 2015 the original author or authors.
|
@rem Copyright 2015 the original author or authors.
|
||||||
@rem
|
@rem
|
||||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
@rem you may not use this file except in compliance with the License.
|
@rem you may not use this file except in compliance with the License.
|
||||||
@rem You may obtain a copy of the License at
|
@rem You may obtain a copy of the License at
|
||||||
@rem
|
@rem
|
||||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||||
@rem
|
@rem
|
||||||
@rem Unless required by applicable law or agreed to in writing, software
|
@rem Unless required by applicable law or agreed to in writing, software
|
||||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
@rem See the License for the specific language governing permissions and
|
@rem See the License for the specific language governing permissions and
|
||||||
@rem limitations under the License.
|
@rem limitations under the License.
|
||||||
@rem
|
@rem
|
||||||
|
|
||||||
@if "%DEBUG%"=="" @echo off
|
@if "%DEBUG%"=="" @echo off
|
||||||
@rem ##########################################################################
|
@rem ##########################################################################
|
||||||
@rem
|
@rem
|
||||||
@rem Gradle startup script for Windows
|
@rem Gradle startup script for Windows
|
||||||
@rem
|
@rem
|
||||||
@rem ##########################################################################
|
@rem ##########################################################################
|
||||||
|
|
||||||
@rem Set local scope for the variables with windows NT shell
|
@rem Set local scope for the variables with windows NT shell
|
||||||
if "%OS%"=="Windows_NT" setlocal
|
if "%OS%"=="Windows_NT" setlocal
|
||||||
|
|
||||||
set DIRNAME=%~dp0
|
set DIRNAME=%~dp0
|
||||||
if "%DIRNAME%"=="" set DIRNAME=.
|
if "%DIRNAME%"=="" set DIRNAME=.
|
||||||
@rem This is normally unused
|
@rem This is normally unused
|
||||||
set APP_BASE_NAME=%~n0
|
set APP_BASE_NAME=%~n0
|
||||||
set APP_HOME=%DIRNAME%
|
set APP_HOME=%DIRNAME%
|
||||||
|
|
||||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||||
|
|
||||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||||
|
|
||||||
@rem Find java.exe
|
@rem Find java.exe
|
||||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||||
|
|
||||||
set JAVA_EXE=java.exe
|
set JAVA_EXE=java.exe
|
||||||
%JAVA_EXE% -version >NUL 2>&1
|
%JAVA_EXE% -version >NUL 2>&1
|
||||||
if %ERRORLEVEL% equ 0 goto execute
|
if %ERRORLEVEL% equ 0 goto execute
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||||
echo.
|
echo.
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
echo location of your Java installation.
|
echo location of your Java installation.
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
:findJavaFromJavaHome
|
:findJavaFromJavaHome
|
||||||
set JAVA_HOME=%JAVA_HOME:"=%
|
set JAVA_HOME=%JAVA_HOME:"=%
|
||||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||||
|
|
||||||
if exist "%JAVA_EXE%" goto execute
|
if exist "%JAVA_EXE%" goto execute
|
||||||
|
|
||||||
echo.
|
echo.
|
||||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||||
echo.
|
echo.
|
||||||
echo Please set the JAVA_HOME variable in your environment to match the
|
echo Please set the JAVA_HOME variable in your environment to match the
|
||||||
echo location of your Java installation.
|
echo location of your Java installation.
|
||||||
|
|
||||||
goto fail
|
goto fail
|
||||||
|
|
||||||
:execute
|
:execute
|
||||||
@rem Setup the command line
|
@rem Setup the command line
|
||||||
|
|
||||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||||
|
|
||||||
|
|
||||||
@rem Execute Gradle
|
@rem Execute Gradle
|
||||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||||
|
|
||||||
:end
|
:end
|
||||||
@rem End local scope for the variables with windows NT shell
|
@rem End local scope for the variables with windows NT shell
|
||||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||||
|
|
||||||
:fail
|
:fail
|
||||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||||
rem the _cmd.exe /c_ return code!
|
rem the _cmd.exe /c_ return code!
|
||||||
set EXIT_CODE=%ERRORLEVEL%
|
set EXIT_CODE=%ERRORLEVEL%
|
||||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||||
exit /b %EXIT_CODE%
|
exit /b %EXIT_CODE%
|
||||||
|
|
||||||
:mainEnd
|
:mainEnd
|
||||||
if "%OS%"=="Windows_NT" endlocal
|
if "%OS%"=="Windows_NT" endlocal
|
||||||
|
|
||||||
:omega
|
:omega
|
||||||
|
35
programs/booleans-to-fold.tri
Normal file
35
programs/booleans-to-fold.tri
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
let
|
||||||
|
var b: Boolean
|
||||||
|
in
|
||||||
|
begin
|
||||||
|
b := 1 < 3;
|
||||||
|
|
||||||
|
if b
|
||||||
|
then put('t')
|
||||||
|
else put('f');
|
||||||
|
|
||||||
|
puteol();
|
||||||
|
|
||||||
|
b := 1 > 3;
|
||||||
|
|
||||||
|
if b
|
||||||
|
then put('t')
|
||||||
|
else put('f');
|
||||||
|
|
||||||
|
puteol();
|
||||||
|
|
||||||
|
b := 2 >= 1;
|
||||||
|
|
||||||
|
if b
|
||||||
|
then put('t')
|
||||||
|
else put('f');
|
||||||
|
|
||||||
|
puteol();
|
||||||
|
|
||||||
|
b := 2 < 1;
|
||||||
|
|
||||||
|
if b
|
||||||
|
then put('t')
|
||||||
|
else put('f');
|
||||||
|
|
||||||
|
end
|
42
programs/run
Normal file
42
programs/run
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Term. colours for output
|
||||||
|
RED='\033[0;31m' # Red
|
||||||
|
GRN='\033[0;32m' # Green
|
||||||
|
YLLW='\033[0;33m' # Yellow
|
||||||
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
|
TRI="" #.tri file
|
||||||
|
|
||||||
|
# Check if the input in arg 1 ($1) is empty
|
||||||
|
if [ -z "$1" ]
|
||||||
|
then # if empty...
|
||||||
|
printf "${YLLW}Usage: $0 *.tri file (optional: $0 *.tri tree)${NC}"
|
||||||
|
exit 1 # Exit with code 1, failure
|
||||||
|
else
|
||||||
|
TRI=$1
|
||||||
|
fi
|
||||||
|
|
||||||
|
#Remove the extension of the file
|
||||||
|
FILENAME=$(echo $TRI | cut -f 1 -d '.')
|
||||||
|
|
||||||
|
printf "${YLLW}[INFO] Compiling file: $FILENAME.tri to $FILENAME.tam ...${NC}\n"
|
||||||
|
|
||||||
|
# Compile to tam
|
||||||
|
if java -cp ../build/libs/Triangle-Tools.jar triangle.Compiler $FILENAME.tri -o=$FILENAME.tam &> /dev/null #quiet
|
||||||
|
then if [ -z "$2" ]
|
||||||
|
then #if second arg empty (really im not checking if you put tree)
|
||||||
|
printf "${GRN}[INFO] Running file: $FILENAME.tam ...${NC}\n"
|
||||||
|
java -cp ../build/libs/Triangle-Tools.jar triangle.abstractMachine.Interpreter $FILENAME.tam
|
||||||
|
exit 0
|
||||||
|
else #youve put tree, so lets see it!
|
||||||
|
printf "${GRN}[INFO] Running file: $FILENAME.tam ... and displaying AST${NC}\n"
|
||||||
|
java -cp ../build/libs/Triangle-Tools.jar triangle.Compiler $FILENAME.tri tree -o=$FILENAME.tam &> /dev/null #quiet
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
else #error msg
|
||||||
|
printf "${RED}[ERROR] Could not complie $FILENAME.tri ...${NC}"
|
||||||
|
err=$(java -cp ../build/libs/Triangle-Tools.jar triangle.Compiler $FILENAME.tri -o=$FILENAME.tam)
|
||||||
|
printf "${RED}\n$err\n${NC}"
|
||||||
|
exit 1 #exit with 1, failure
|
||||||
|
fi
|
Loading…
x
Reference in New Issue
Block a user