File tree Expand file tree Collapse file tree 4 files changed +16
-8
lines changed Expand file tree Collapse file tree 4 files changed +16
-8
lines changed Original file line number Diff line number Diff line change 33 "version" : " 1.0.13" ,
44 "main" : " dist/index.js" ,
55 "types" : " dist/index.d.ts" ,
6- "files" : [" dist" ],
6+ "files" : [
7+ " dist"
8+ ],
79 "repository" : {
810 "type" : " git" ,
911 "url" : " git+https://github.com/source-academy/java-slang.git"
4042 "java-parser" : " ^2.0.5" ,
4143 "lodash" : " ^4.17.21" ,
4244 "peggy" : " ^4.0.2"
43- }
45+ },
46+ "packageManager" :
" [email protected] +sha1.ac34549e6aa8e7ead463a7407e1c7390f61a6610" 4447}
Original file line number Diff line number Diff line change @@ -3,6 +3,11 @@ import { ConstantInfo } from './constants'
33import { FieldInfo } from './fields'
44import { MethodInfo } from './methods'
55
6+ export interface Class {
7+ classFile : ClassFile
8+ className : string
9+ }
10+
611export interface ClassFile {
712 magic : number
813 minorVersion : number
Original file line number Diff line number Diff line change 1- import { ClassFile } from '../ClassFile/types'
1+ import { Class , ClassFile } from '../ClassFile/types'
22import { AST } from '../ast/types/packages-and-modules'
33import {
44 ClassBodyDeclaration ,
@@ -52,7 +52,7 @@ export class Compiler {
5252 compile ( ast : AST ) {
5353 this . setup ( )
5454 this . symbolTable . handleImports ( ast . importDeclarations )
55- const classFiles : Array < ClassFile > = [ ]
55+ const classFiles : Array < Class > = [ ]
5656
5757 ast . topLevelClassOrInterfaceDeclarations . forEach ( decl => {
5858 const className = decl . typeIdentifier
@@ -66,7 +66,7 @@ export class Compiler {
6666 ast . topLevelClassOrInterfaceDeclarations . forEach ( decl => {
6767 this . resetClassFileState ( )
6868 const classFile = this . compileClass ( decl )
69- classFiles . push ( classFile )
69+ classFiles . push ( { classFile : classFile , className : this . className } )
7070 } )
7171
7272 return classFiles
Original file line number Diff line number Diff line change 11import * as peggy from 'peggy'
22import { AST } from '../ast/types/packages-and-modules'
3- import { ClassFile } from '../ClassFile/types'
3+ import { Class } from '../ClassFile/types'
44import { Compiler } from './compiler'
55import { javaPegGrammar } from './grammar'
66import { peggyFunctions } from './peggy-functions'
77
8- export const compile = ( ast : AST ) : Array < ClassFile > => {
8+ export const compile = ( ast : AST ) : Array < Class > => {
99 const compiler = new Compiler ( )
1010 return compiler . compile ( ast )
1111}
1212
13- export const compileFromSource = ( javaProgram : string ) : Array < ClassFile > => {
13+ export const compileFromSource = ( javaProgram : string ) : Array < Class > => {
1414 const parser = peggy . generate ( peggyFunctions + javaPegGrammar , {
1515 allowedStartRules : [ 'CompilationUnit' ] ,
1616 cache : true
You can’t perform that action at this time.
0 commit comments