added multi-line comment support

java11
simonkellet 2 years ago
parent f69942533f
commit 6b7fdd3bb0
  1. 14
      Triangle.Compiler/src/main/java/triangle/syntacticAnalyzer/Scanner.java
  2. 6
      tam

@ -84,6 +84,18 @@ public final class Scanner {
} }
break; break;
// new type of comment, the multi-line $ comment
case '$':{
takeIt();
//check if it is not the comment char or EOT, skipping new lines (no EOL)
while((currentChar != '$') && (currentChar != SourceFile.EOT))
takeIt();
//if we reach another $, takeIt and move on, we've reached the end of the multi-line comment
if(currentChar == '$')
takeIt();
}
break;
// whitespace // whitespace
case ' ': case ' ':
case '\n': case '\n':
@ -262,7 +274,7 @@ public final class Scanner {
currentlyScanningToken = false; currentlyScanningToken = false;
// skip any whitespace or comments // skip any whitespace or comments
while (currentChar == '!' || currentChar == ' ' || currentChar == '\n' || currentChar == '\r' while (currentChar == '!' || currentChar == ' ' || currentChar == '\n' || currentChar == '\r'
|| currentChar == '\t' || currentChar == '#') || currentChar == '\t' || currentChar == '#' || currentChar == '$')
scanSeparator(); scanSeparator();
currentlyScanningToken = true; currentlyScanningToken = true;

6
tam

@ -15,13 +15,15 @@ if [ -z "$1" ]
fi fi
printf "${GRN}[INFO] Compiling file: $1.tri to $1.tam ...${NC}\n" printf "${GRN}[INFO] Compiling file: $1.tri to $1.tam ...${NC}\n"
# Compile to tam # Compile to tam
#java -cp build/libs/Triangle-Tools.jar triangle.Compiler programs/$1.tri -o=$1.tam &> /dev/null #Quiet output, not handy! if java -cp build/libs/Triangle-Tools.jar triangle.Compiler programs/$1.tri -o=$1.tam &> /dev/null #quiet
if java -cp build/libs/Triangle-Tools.jar triangle.Compiler programs/$1.tri -o=$1.tam
then then
printf "${GRN}[INFO] Running file: $1.tam ...${NC}\n" printf "${GRN}[INFO] Running file: $1.tam ...${NC}\n"
java -cp build/libs/Triangle-Tools.jar triangle.abstractMachine.Interpreter $1.tam java -cp build/libs/Triangle-Tools.jar triangle.abstractMachine.Interpreter $1.tam
else else
printf "${RED}[ERROR] Could not complie $1.tri ...${NC}" printf "${RED}[ERROR] Could not complie $1.tri ...${NC}"
err=$(java -cp build/libs/Triangle-Tools.jar triangle.Compiler programs/$1.tri -o=$1.tam)
printf "${RED}\n$err\n${NC}"
exit 1 exit 1
fi fi