41 lines
1.2 KiB
Plaintext
41 lines
1.2 KiB
Plaintext
fn countLines(content: String): Int = {
|
|
let lines = String.split(content, "
|
|
")
|
|
List.length(lines)
|
|
}
|
|
|
|
fn countWords(content: String): Int = {
|
|
let words = String.split(content, " ")
|
|
List.length(List.filter(words, fn(w: String): Bool => String.length(w) > 0))
|
|
}
|
|
|
|
fn analyzeFile(path: String): Unit with {File, Console} = {
|
|
Console.print("Analyzing file: " + path)
|
|
if File.exists(path) then {
|
|
let content = File.read(path)
|
|
let lines = countLines(content)
|
|
let words = countWords(content)
|
|
let chars = String.length(content)
|
|
Console.print(" Lines: " + toString(lines))
|
|
Console.print(" Words: " + toString(words))
|
|
Console.print(" Chars: " + toString(chars))
|
|
} else {
|
|
Console.print(" Error: File not found!")
|
|
}
|
|
}
|
|
|
|
fn main(): Unit with {File, Console} = {
|
|
Console.print("=== Lux File Analyzer ===")
|
|
Console.print("")
|
|
analyzeFile("examples/file_io.lux")
|
|
Console.print("")
|
|
analyzeFile("examples/hello.lux")
|
|
Console.print("")
|
|
let report = "File analysis complete.
|
|
Analyzed 2 files."
|
|
File.write("/tmp/lux_report.txt", report)
|
|
Console.print("Report written to /tmp/lux_report.txt")
|
|
}
|
|
|
|
let result = run main() with {}
|