-
-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathJava-Language.ps.ps1
More file actions
42 lines (32 loc) · 1.36 KB
/
Java-Language.ps.ps1
File metadata and controls
42 lines (32 loc) · 1.36 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Language function Java {
<#
.SYNOPSIS
Java PipeScript Language Definition.
.DESCRIPTION
Allows PipeScript to generate Java.
Multiline comments with /*{}*/ will be treated as blocks of PipeScript.
Multiline comments can be preceeded or followed by 'empty' syntax, which will be ignored.
The Java Inline PipeScript Transpiler will consider the following syntax to be empty:
* ```null```
* ```""```
* ```''```
#>
[ValidatePattern('\.(?>java)$')]
param()
# Java files are named `.java`.
$FilePattern = '\.(?>java)$'
# Java Projects can be pom.xml (Maven) or Gradle
$ProjectFilePattern = '(?>pom.xml|\.gradle$)'
# Java is case sensitive.
$CaseSensitive = $true
# We start off by declaring a number of regular expressions:
$startComment = '/\*' # * Start Comments ```\*```
$endComment = '\*/' # * End Comments ```/*```
$Whitespace = '[\s\n\r]{0,}'
# * IgnoredContext ```String.empty```, ```null```, blank strings and characters
$IgnoredContext = "(?<ignore>(?>$("null", '""', "''" -join '|'))\s{0,}){0,1}"
$StartPattern = "(?<PSStart>${IgnoredContext}${startComment}\{$Whitespace)"
$EndPattern = "(?<PSEnd>$Whitespace\}${endComment}\s{0,}${IgnoredContext})"
# Java's compiler is "javac" (if found)
$Compiler = 'javac'
}