diff options
Diffstat (limited to 'language')
| -rw-r--r-- | language/.gitignore | 28 | ||||
| -rw-r--r-- | language/README.md | 6 | ||||
| -rw-r--r-- | language/examples/all-features.lang | 21 | ||||
| -rw-r--r-- | language/pom.xml | 79 | ||||
| -rw-r--r-- | language/src/main/antlr4/com/seaofnodes/simple/antlr/SimpleLanguage.g4 | 170 |
5 files changed, 0 insertions, 304 deletions
diff --git a/language/.gitignore b/language/.gitignore deleted file mode 100644 index 58314a2c..00000000 --- a/language/.gitignore +++ /dev/null @@ -1,28 +0,0 @@ -# Compiled class file -*.class - -# Log file -*.log - -# BlueJ files -*.ctxt - -# Mobile Tools for Java (J2ME) -.mtj.tmp/ - -# Package Files # -*.jar -*.war -*.nar -*.ear -*.zip -*.tar.gz -*.rar - -# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml -hs_err_pid* - -target/* - -.idea -*.iml
\ No newline at end of file diff --git a/language/README.md b/language/README.md deleted file mode 100644 index 09593ab5..00000000 --- a/language/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# Simple Demo Language - -The language is a small subset of the C language. - -The grammar of the language is not yet finalized, but for the current definition, -please look at [grammar](src/main/antlr4/com/seaofnodes/simple/antlr/SimpleLanguage.g4).
\ No newline at end of file diff --git a/language/examples/all-features.lang b/language/examples/all-features.lang deleted file mode 100644 index 132e4b9c..00000000 --- a/language/examples/all-features.lang +++ /dev/null @@ -1,21 +0,0 @@ -int i; -int j; - -i = 0; -j = 100; -while ( 1 ) -{ - i = i + 1; - j = j - 1; - if (i >= j) - break; -} - -if (1) - i = i + 5; -else if (2) - i = i - 1; -else -{ - j = 0; -}
\ No newline at end of file diff --git a/language/pom.xml b/language/pom.xml deleted file mode 100644 index dbb4710e..00000000 --- a/language/pom.xml +++ /dev/null @@ -1,79 +0,0 @@ -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>com.seaofnodes</groupId> - <artifactId>simple</artifactId> - <version>1.0</version> - </parent> - <artifactId>language-grammar</artifactId> - <packaging>jar</packaging> - <name>SeaOfNodes Demo Simple Language Grammar</name> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <maven.compiler.target>21</maven.compiler.target> - <maven.compiler.source>21</maven.compiler.source> - <antlr4test-maven-plugin.version>1.22</antlr4test-maven-plugin.version> - <antlr.version>4.11.1</antlr.version> - <junit.version>4.13.2</junit.version> - </properties> - <dependencies> - <dependency> - <groupId>org.antlr</groupId> - <artifactId>antlr4-runtime</artifactId> - <version>${antlr.version}</version> - <type>jar</type> - <scope>compile</scope> - </dependency> - </dependencies> - <build> - <pluginManagement> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-compiler-plugin</artifactId> - <version>3.10.1</version> - </plugin> - </plugins> - </pluginManagement> - <plugins> - <plugin> - <groupId>org.antlr</groupId> - <artifactId>antlr4-maven-plugin</artifactId> - <version>${antlr.version}</version> - <configuration> - <visitor>true</visitor> - <listener>true</listener> - </configuration> - <executions> - <execution> - <phase>generate-sources</phase> - <goals> - <goal>antlr4</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>com.khubla.antlr</groupId> - <artifactId>antlr4test-maven-plugin</artifactId> - <version>${antlr4test-maven-plugin.version}</version> - <configuration> - <verbose>false</verbose> - <showTree>false</showTree> - <entryPoint>program</entryPoint> - <grammarName>SimpleLanguage</grammarName> - <packageName>com.seaofnodes.simple.antlr</packageName> - <exampleFiles>examples/</exampleFiles> - </configuration> - <executions> - <execution> - <goals> - <goal>test</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> -</project> diff --git a/language/src/main/antlr4/com/seaofnodes/simple/antlr/SimpleLanguage.g4 b/language/src/main/antlr4/com/seaofnodes/simple/antlr/SimpleLanguage.g4 deleted file mode 100644 index 6779e5a2..00000000 --- a/language/src/main/antlr4/com/seaofnodes/simple/antlr/SimpleLanguage.g4 +++ /dev/null @@ -1,170 +0,0 @@ -grammar SimpleLanguage; - -program - : declaration* statement+ EOF - ; - -declaration - : type IDENTIFIER ';' - ; - -type - : 'int' - ; - -statement - : 'if' '(' expression ')' statement - | 'if' '(' expression ')' statement 'else' statement - | 'while' '(' expression ')' statement - | IDENTIFIER '=' expression ';' - | '{' declaration* statement+ '}' - | 'break' ';' - ; - -expression - : primaryExpression # PrimaryExpression_ - | ('-' | '!') expression # UnaryExpression - | expression ('*' | '/' ) expression # ArithmeticOrLogicalExpression - | expression ('+' | '-') expression # ArithmeticOrLogicalExpression - | expression ('==' | '!='| '>'| '<'| '>='| '<=') expression # ComparisonExpression - | expression '&&' expression # BooleanExpression - | expression '||' expression # BooleanExpression - ; - -primaryExpression - : - | INTEGER_LITERAL - | IDENTIFIER - | '(' expression ')' - ; - -/////////////////////////////////////////////////////////////////// - -IDENTIFIER - : IDENTIFIER_NONDIGIT - ( IDENTIFIER_NONDIGIT - | DEC_DIGIT - )* - ; - -fragment -IDENTIFIER_NONDIGIT - : NON_DIGIT - | UNIVERSAL_CHARACTER_NAME - ; - -fragment -NON_DIGIT - : [a-zA-Z_] - ; - - -fragment -UNIVERSAL_CHARACTER_NAME - : '\\u' HEX_QUAD - | '\\U' HEX_QUAD HEX_QUAD - ; - -fragment -HEX_QUAD - : HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT - ; - -// tokens char and string -CHAR_LITERAL - : '\'' - ( - ~['\\\n\r\t] - | QUOTE_ESCAPE - | ASCII_ESCAPE - | UNICODE_ESCAPE - ) '\'' - ; - -STRING_LITERAL - : '"' - ( - ~["] - | QUOTE_ESCAPE - | ASCII_ESCAPE - | UNICODE_ESCAPE - | ESC_NEWLINE - )* '"' - ; -RAW_STRING_LITERAL: 'r' RAW_STRING_CONTENT; -fragment RAW_STRING_CONTENT: '#' RAW_STRING_CONTENT '#' | '"' .*? '"'; -BYTE_LITERAL: 'b\'' (. | QUOTE_ESCAPE | BYTE_ESCAPE) '\''; - -BYTE_STRING_LITERAL: 'b"' (~["] | QUOTE_ESCAPE | BYTE_ESCAPE)* '"'; -RAW_BYTE_STRING_LITERAL: 'br' RAW_STRING_CONTENT; -fragment ASCII_ESCAPE: '\\x' OCT_DIGIT HEX_DIGIT | COMMON_ESCAPE; -fragment BYTE_ESCAPE: '\\x' HEX_DIGIT HEX_DIGIT | COMMON_ESCAPE; -fragment COMMON_ESCAPE: '\\' [nrt\\0]; -fragment UNICODE_ESCAPE - : '\\u{' HEX_DIGIT HEX_DIGIT? HEX_DIGIT? HEX_DIGIT? HEX_DIGIT? HEX_DIGIT? '}' - ; -fragment QUOTE_ESCAPE: '\\' ['"]; -fragment ESC_NEWLINE: '\\' '\n'; - -// number -INTEGER_LITERAL - : - ( - DEC_LITERAL - | BIN_LITERAL - | OCT_LITERAL - | HEX_LITERAL - ) INTEGER_SUFFIX? - ; -DEC_LITERAL: DEC_DIGIT (DEC_DIGIT | '_')*; -HEX_LITERAL: '0x' '_'* HEX_DIGIT (HEX_DIGIT | '_')*; -OCT_LITERAL: '0o' '_'* OCT_DIGIT (OCT_DIGIT | '_')*; -BIN_LITERAL: '0b' '_'* [01] [01_]*; -FLOAT_LITERAL - : DEC_LITERAL - ( - '.' DEC_LITERAL - )? FLOAT_EXPONENT? FLOAT_SUFFIX? - ; - -fragment INTEGER_SUFFIX - : 'u8' - | 'u16' - | 'u32' - | 'u64' - | 'u128' - | 'usize' - | 'i8' - | 'i16' - | 'i32' - | 'i64' - | 'i128' - | 'isize' - ; - -fragment FLOAT_SUFFIX: 'f32' | 'f64'; -fragment FLOAT_EXPONENT: [eE] [+-]? '_'* DEC_LITERAL; -fragment OCT_DIGIT: [0-7]; -fragment DEC_DIGIT: [0-9]; -fragment HEX_DIGIT: [0-9a-fA-F]; - - -WHITESPACE - : [ \t]+ - -> skip - ; - -NEWLINE - : ( '\r' '\n'? - | '\n' - ) - -> skip - ; - -LINE_COMMENT - : '//' ~[\r\n]* - -> skip - ; - - -ANY: . ;
\ No newline at end of file |
