TheThirdOne / rars

RARS -- RISC-V Assembler and Runtime Simulator
Other
1.18k stars 217 forks source link

Multiline comment support #203

Open sdasda7777 opened 11 months ago

sdasda7777 commented 11 months ago

Fixes #100. Implements support for multiline comments such as /* comment */.

The example file riscv1_min.asm (file extension changed to be allowed here) renders and compiles like this (the colour in editor being user selectable): image image image

sdasda7777 commented 11 months ago

There was actually a bug with check for the terminating */, where it wouldn't be found by compiler nor highlighter if it was sooner than the third character on the given line. Following is a new example riscv1_min.asm as rendered and compiled by the current version:

image image

sdasda7777 commented 11 months ago

I'll probably make a separate pull request later, but I also translated the build script to PowerShell for simple* building on Windows

$JAVA_SDK_DIRECTORY = "C:\Program Files\Java\jdk-17.0.1\bin"

if (git submodule status | findstr "\(") {
    # Create build folder
    New-Item -Force -ItemType "directory" build > $null
    # Compile src/*.java files
    &"$JAVA_SDK_DIRECTORY\javac.exe" -encoding UTF8 -d build @(
        Get-ChildItem -Recurse -Path src/ -Filter *.java | ForEach-Object {Resolve-Path $_.FullName -Relative})
    # Exit if compilation error happened
    if ( -Not $? ) {
        exit 1
    }
    # Copy src/*.java files to build/
    robocopy src/ build/ /S /XF *.jar /nfl /ndl /np /njh /njs
    robocopy ./ build/ README.md License.txt /nfl /ndl /np /njh /njs
    cd build
    # Create .jar file from build/
    &"$JAVA_SDK_DIRECTORY\jar.exe" cfm ../rars.jar ./META-INF/MANIFEST.MF *
    cd ..
} else {
    echo "It looks like JSoftFloat is not cloned. Consider running \"git submodule update --init\""
}