JS: support additional export statements for Flow

This commit is contained in:
Esben Sparre Andreasen 2019-01-02 14:18:36 +01:00
Родитель c6f9a043ca
Коммит 45a4026385
5 изменённых файлов: 447 добавлений и 91 удалений

Просмотреть файл

@ -911,6 +911,11 @@ public class FlowParser extends ESNextParser {
List<ExportSpecifier> specifiers = this.parseExportSpecifiers(exports);
this.parseExportFrom(specifiers, null, false);
return null;
} else if (this.eat(TokenType.star)) {
if (this.eatContextual("as"))
this.parseIdent(true);
this.parseExportFrom(null, null, true);
return null;
} else {
// `export type Foo = Bar;`
this.flowParseTypeAlias(startLoc);

Просмотреть файл

@ -2,3 +2,4 @@ declare export var foo : boolean;
declare export default typeof simpleTextBuffer$TextBuffer;
declare export default marked$Marked;
declare export type ProcessEnv = { };
declare module "foo" { declare export type * from "bar"; }

Просмотреть файл

@ -0,0 +1,5 @@
export { a } from "m";
export * from "m";
export type { b } from "m";
export type * from "m";
export type * as fooTypes from "foo";

Просмотреть файл

@ -10,8 +10,8 @@ hasLocation(#10000,#10002)
scopes(#20000,0)
#20001=@"script;{#10000},1,1"
toplevels(#20001,0)
#20002=@"loc,{#10000},1,1,5,0"
locations_default(#20002,#10000,1,1,5,0)
#20002=@"loc,{#10000},1,1,5,58"
locations_default(#20002,#10000,1,1,5,58)
hasLocation(#20001,#20002)
#20003=*
lines(#20003,#20001,"declare export var foo : boolean;","
@ -37,150 +37,215 @@ lines(#20009,#20001,"declare export type ProcessEnv = { };","
#20010=@"loc,{#10000},4,1,4,37"
locations_default(#20010,#10000,4,1,4,37)
hasLocation(#20009,#20010)
numlines(#20001,4,4,0)
#20011=*
tokeninfo(#20011,6,#20001,0,"declare")
#20012=@"loc,{#10000},1,1,1,7"
locations_default(#20012,#10000,1,1,1,7)
lines(#20011,#20001,"declare module ""foo"" { declare export type * from ""bar""; }","")
#20012=@"loc,{#10000},5,1,5,58"
locations_default(#20012,#10000,5,1,5,58)
hasLocation(#20011,#20012)
numlines(#20001,5,5,0)
#20013=*
tokeninfo(#20013,7,#20001,1,"export")
#20014=@"loc,{#10000},1,9,1,14"
locations_default(#20014,#10000,1,9,1,14)
tokeninfo(#20013,6,#20001,0,"declare")
#20014=@"loc,{#10000},1,1,1,7"
locations_default(#20014,#10000,1,1,1,7)
hasLocation(#20013,#20014)
#20015=*
tokeninfo(#20015,7,#20001,2,"var")
#20016=@"loc,{#10000},1,16,1,18"
locations_default(#20016,#10000,1,16,1,18)
tokeninfo(#20015,7,#20001,1,"export")
#20016=@"loc,{#10000},1,9,1,14"
locations_default(#20016,#10000,1,9,1,14)
hasLocation(#20015,#20016)
#20017=*
tokeninfo(#20017,6,#20001,3,"foo")
#20018=@"loc,{#10000},1,20,1,22"
locations_default(#20018,#10000,1,20,1,22)
tokeninfo(#20017,7,#20001,2,"var")
#20018=@"loc,{#10000},1,16,1,18"
locations_default(#20018,#10000,1,16,1,18)
hasLocation(#20017,#20018)
#20019=*
tokeninfo(#20019,8,#20001,4,":")
#20020=@"loc,{#10000},1,24,1,24"
locations_default(#20020,#10000,1,24,1,24)
tokeninfo(#20019,6,#20001,3,"foo")
#20020=@"loc,{#10000},1,20,1,22"
locations_default(#20020,#10000,1,20,1,22)
hasLocation(#20019,#20020)
#20021=*
tokeninfo(#20021,6,#20001,5,"boolean")
#20022=@"loc,{#10000},1,26,1,32"
locations_default(#20022,#10000,1,26,1,32)
tokeninfo(#20021,8,#20001,4,":")
#20022=@"loc,{#10000},1,24,1,24"
locations_default(#20022,#10000,1,24,1,24)
hasLocation(#20021,#20022)
#20023=*
tokeninfo(#20023,8,#20001,6,";")
#20024=@"loc,{#10000},1,33,1,33"
locations_default(#20024,#10000,1,33,1,33)
tokeninfo(#20023,6,#20001,5,"boolean")
#20024=@"loc,{#10000},1,26,1,32"
locations_default(#20024,#10000,1,26,1,32)
hasLocation(#20023,#20024)
#20025=*
tokeninfo(#20025,6,#20001,7,"declare")
#20026=@"loc,{#10000},2,1,2,7"
locations_default(#20026,#10000,2,1,2,7)
tokeninfo(#20025,8,#20001,6,";")
#20026=@"loc,{#10000},1,33,1,33"
locations_default(#20026,#10000,1,33,1,33)
hasLocation(#20025,#20026)
#20027=*
tokeninfo(#20027,7,#20001,8,"export")
#20028=@"loc,{#10000},2,9,2,14"
locations_default(#20028,#10000,2,9,2,14)
tokeninfo(#20027,6,#20001,7,"declare")
#20028=@"loc,{#10000},2,1,2,7"
locations_default(#20028,#10000,2,1,2,7)
hasLocation(#20027,#20028)
#20029=*
tokeninfo(#20029,7,#20001,9,"default")
#20030=@"loc,{#10000},2,16,2,22"
locations_default(#20030,#10000,2,16,2,22)
tokeninfo(#20029,7,#20001,8,"export")
#20030=@"loc,{#10000},2,9,2,14"
locations_default(#20030,#10000,2,9,2,14)
hasLocation(#20029,#20030)
#20031=*
tokeninfo(#20031,7,#20001,10,"typeof")
#20032=@"loc,{#10000},2,24,2,29"
locations_default(#20032,#10000,2,24,2,29)
tokeninfo(#20031,7,#20001,9,"default")
#20032=@"loc,{#10000},2,16,2,22"
locations_default(#20032,#10000,2,16,2,22)
hasLocation(#20031,#20032)
#20033=*
tokeninfo(#20033,6,#20001,11,"simpleTextBuffer$TextBuffer")
#20034=@"loc,{#10000},2,31,2,57"
locations_default(#20034,#10000,2,31,2,57)
tokeninfo(#20033,7,#20001,10,"typeof")
#20034=@"loc,{#10000},2,24,2,29"
locations_default(#20034,#10000,2,24,2,29)
hasLocation(#20033,#20034)
#20035=*
tokeninfo(#20035,8,#20001,12,";")
#20036=@"loc,{#10000},2,58,2,58"
locations_default(#20036,#10000,2,58,2,58)
tokeninfo(#20035,6,#20001,11,"simpleTextBuffer$TextBuffer")
#20036=@"loc,{#10000},2,31,2,57"
locations_default(#20036,#10000,2,31,2,57)
hasLocation(#20035,#20036)
#20037=*
tokeninfo(#20037,6,#20001,13,"declare")
#20038=@"loc,{#10000},3,1,3,7"
locations_default(#20038,#10000,3,1,3,7)
tokeninfo(#20037,8,#20001,12,";")
#20038=@"loc,{#10000},2,58,2,58"
locations_default(#20038,#10000,2,58,2,58)
hasLocation(#20037,#20038)
#20039=*
tokeninfo(#20039,7,#20001,14,"export")
#20040=@"loc,{#10000},3,9,3,14"
locations_default(#20040,#10000,3,9,3,14)
tokeninfo(#20039,6,#20001,13,"declare")
#20040=@"loc,{#10000},3,1,3,7"
locations_default(#20040,#10000,3,1,3,7)
hasLocation(#20039,#20040)
#20041=*
tokeninfo(#20041,7,#20001,15,"default")
#20042=@"loc,{#10000},3,16,3,22"
locations_default(#20042,#10000,3,16,3,22)
tokeninfo(#20041,7,#20001,14,"export")
#20042=@"loc,{#10000},3,9,3,14"
locations_default(#20042,#10000,3,9,3,14)
hasLocation(#20041,#20042)
#20043=*
tokeninfo(#20043,6,#20001,16,"marked$Marked")
#20044=@"loc,{#10000},3,24,3,36"
locations_default(#20044,#10000,3,24,3,36)
tokeninfo(#20043,7,#20001,15,"default")
#20044=@"loc,{#10000},3,16,3,22"
locations_default(#20044,#10000,3,16,3,22)
hasLocation(#20043,#20044)
#20045=*
tokeninfo(#20045,8,#20001,17,";")
#20046=@"loc,{#10000},3,37,3,37"
locations_default(#20046,#10000,3,37,3,37)
tokeninfo(#20045,6,#20001,16,"marked$Marked")
#20046=@"loc,{#10000},3,24,3,36"
locations_default(#20046,#10000,3,24,3,36)
hasLocation(#20045,#20046)
#20047=*
tokeninfo(#20047,6,#20001,18,"declare")
#20048=@"loc,{#10000},4,1,4,7"
locations_default(#20048,#10000,4,1,4,7)
tokeninfo(#20047,8,#20001,17,";")
#20048=@"loc,{#10000},3,37,3,37"
locations_default(#20048,#10000,3,37,3,37)
hasLocation(#20047,#20048)
#20049=*
tokeninfo(#20049,7,#20001,19,"export")
#20050=@"loc,{#10000},4,9,4,14"
locations_default(#20050,#10000,4,9,4,14)
tokeninfo(#20049,6,#20001,18,"declare")
#20050=@"loc,{#10000},4,1,4,7"
locations_default(#20050,#10000,4,1,4,7)
hasLocation(#20049,#20050)
#20051=*
tokeninfo(#20051,6,#20001,20,"type")
#20052=@"loc,{#10000},4,16,4,19"
locations_default(#20052,#10000,4,16,4,19)
tokeninfo(#20051,7,#20001,19,"export")
#20052=@"loc,{#10000},4,9,4,14"
locations_default(#20052,#10000,4,9,4,14)
hasLocation(#20051,#20052)
#20053=*
tokeninfo(#20053,6,#20001,21,"ProcessEnv")
#20054=@"loc,{#10000},4,21,4,30"
locations_default(#20054,#10000,4,21,4,30)
tokeninfo(#20053,6,#20001,20,"type")
#20054=@"loc,{#10000},4,16,4,19"
locations_default(#20054,#10000,4,16,4,19)
hasLocation(#20053,#20054)
#20055=*
tokeninfo(#20055,8,#20001,22,"=")
#20056=@"loc,{#10000},4,32,4,32"
locations_default(#20056,#10000,4,32,4,32)
tokeninfo(#20055,6,#20001,21,"ProcessEnv")
#20056=@"loc,{#10000},4,21,4,30"
locations_default(#20056,#10000,4,21,4,30)
hasLocation(#20055,#20056)
#20057=*
tokeninfo(#20057,8,#20001,23,"{")
#20058=@"loc,{#10000},4,34,4,34"
locations_default(#20058,#10000,4,34,4,34)
tokeninfo(#20057,8,#20001,22,"=")
#20058=@"loc,{#10000},4,32,4,32"
locations_default(#20058,#10000,4,32,4,32)
hasLocation(#20057,#20058)
#20059=*
tokeninfo(#20059,8,#20001,24,"}")
#20060=@"loc,{#10000},4,36,4,36"
locations_default(#20060,#10000,4,36,4,36)
tokeninfo(#20059,8,#20001,23,"{")
#20060=@"loc,{#10000},4,34,4,34"
locations_default(#20060,#10000,4,34,4,34)
hasLocation(#20059,#20060)
#20061=*
tokeninfo(#20061,8,#20001,25,";")
#20062=@"loc,{#10000},4,37,4,37"
locations_default(#20062,#10000,4,37,4,37)
tokeninfo(#20061,8,#20001,24,"}")
#20062=@"loc,{#10000},4,36,4,36"
locations_default(#20062,#10000,4,36,4,36)
hasLocation(#20061,#20062)
#20063=*
tokeninfo(#20063,0,#20001,26,"")
#20064=@"loc,{#10000},5,1,5,0"
locations_default(#20064,#10000,5,1,5,0)
tokeninfo(#20063,8,#20001,25,";")
#20064=@"loc,{#10000},4,37,4,37"
locations_default(#20064,#10000,4,37,4,37)
hasLocation(#20063,#20064)
#20065=*
entry_cfg_node(#20065,#20001)
#20066=@"loc,{#10000},1,1,1,0"
locations_default(#20066,#10000,1,1,1,0)
tokeninfo(#20065,6,#20001,26,"declare")
#20066=@"loc,{#10000},5,1,5,7"
locations_default(#20066,#10000,5,1,5,7)
hasLocation(#20065,#20066)
#20067=*
exit_cfg_node(#20067,#20001)
hasLocation(#20067,#20064)
successor(#20065,#20067)
numlines(#10000,4,4,0)
tokeninfo(#20067,6,#20001,27,"module")
#20068=@"loc,{#10000},5,9,5,14"
locations_default(#20068,#10000,5,9,5,14)
hasLocation(#20067,#20068)
#20069=*
tokeninfo(#20069,4,#20001,28,"""foo""")
#20070=@"loc,{#10000},5,16,5,20"
locations_default(#20070,#10000,5,16,5,20)
hasLocation(#20069,#20070)
#20071=*
tokeninfo(#20071,8,#20001,29,"{")
#20072=@"loc,{#10000},5,22,5,22"
locations_default(#20072,#10000,5,22,5,22)
hasLocation(#20071,#20072)
#20073=*
tokeninfo(#20073,6,#20001,30,"declare")
#20074=@"loc,{#10000},5,24,5,30"
locations_default(#20074,#10000,5,24,5,30)
hasLocation(#20073,#20074)
#20075=*
tokeninfo(#20075,7,#20001,31,"export")
#20076=@"loc,{#10000},5,32,5,37"
locations_default(#20076,#10000,5,32,5,37)
hasLocation(#20075,#20076)
#20077=*
tokeninfo(#20077,6,#20001,32,"type")
#20078=@"loc,{#10000},5,39,5,42"
locations_default(#20078,#10000,5,39,5,42)
hasLocation(#20077,#20078)
#20079=*
tokeninfo(#20079,8,#20001,33,"*")
#20080=@"loc,{#10000},5,44,5,44"
locations_default(#20080,#10000,5,44,5,44)
hasLocation(#20079,#20080)
#20081=*
tokeninfo(#20081,6,#20001,34,"from")
#20082=@"loc,{#10000},5,46,5,49"
locations_default(#20082,#10000,5,46,5,49)
hasLocation(#20081,#20082)
#20083=*
tokeninfo(#20083,4,#20001,35,"""bar""")
#20084=@"loc,{#10000},5,51,5,55"
locations_default(#20084,#10000,5,51,5,55)
hasLocation(#20083,#20084)
#20085=*
tokeninfo(#20085,8,#20001,36,";")
#20086=@"loc,{#10000},5,56,5,56"
locations_default(#20086,#10000,5,56,5,56)
hasLocation(#20085,#20086)
#20087=*
tokeninfo(#20087,8,#20001,37,"}")
#20088=@"loc,{#10000},5,58,5,58"
locations_default(#20088,#10000,5,58,5,58)
hasLocation(#20087,#20088)
#20089=*
tokeninfo(#20089,0,#20001,38,"")
#20090=@"loc,{#10000},5,59,5,58"
locations_default(#20090,#10000,5,59,5,58)
hasLocation(#20089,#20090)
#20091=*
entry_cfg_node(#20091,#20001)
#20092=@"loc,{#10000},1,1,1,0"
locations_default(#20092,#10000,1,1,1,0)
hasLocation(#20091,#20092)
#20093=*
exit_cfg_node(#20093,#20001)
hasLocation(#20093,#20090)
successor(#20091,#20093)
numlines(#10000,5,5,0)
filetype(#10000,"javascript")

Просмотреть файл

@ -0,0 +1,280 @@
#10000=@"/export.js;sourcefile"
files(#10000,"/export.js","export","js",0)
#10001=@"/;folder"
folders(#10001,"/","")
containerparent(#10001,#10000)
#10002=@"loc,{#10000},0,0,0,0"
locations_default(#10002,#10000,0,0,0,0)
hasLocation(#10000,#10002)
#20000=@"global_scope"
scopes(#20000,0)
#20001=@"script;{#10000},1,1"
toplevels(#20001,0)
#20002=@"loc,{#10000},1,1,5,37"
locations_default(#20002,#10000,1,1,5,37)
hasLocation(#20001,#20002)
#20003=@"module;{#10000},1,1"
scopes(#20003,3)
scopenodes(#20001,#20003)
scopenesting(#20003,#20000)
isModule(#20001)
#20004=*
stmts(#20004,30,#20001,0,"export ... om ""m"";")
#20005=@"loc,{#10000},1,1,1,22"
locations_default(#20005,#10000,1,1,1,22)
hasLocation(#20004,#20005)
stmtContainers(#20004,#20001)
#20006=*
exprs(#20006,4,#20004,-2,"""m""")
#20007=@"loc,{#10000},1,19,1,21"
locations_default(#20007,#10000,1,19,1,21)
hasLocation(#20006,#20007)
enclosingStmt(#20006,#20004)
exprContainers(#20006,#20001)
literals("m","""m""",#20006)
#20008=*
exprs(#20008,86,#20004,0,"a")
#20009=@"loc,{#10000},1,10,1,10"
locations_default(#20009,#10000,1,10,1,10)
hasLocation(#20008,#20009)
enclosingStmt(#20008,#20004)
exprContainers(#20008,#20001)
#20010=*
exprs(#20010,0,#20008,0,"a")
hasLocation(#20010,#20009)
enclosingStmt(#20010,#20004)
exprContainers(#20010,#20001)
literals("a","a",#20010)
#20011=*
exprs(#20011,0,#20008,1,"a")
hasLocation(#20011,#20009)
enclosingStmt(#20011,#20004)
exprContainers(#20011,#20001)
literals("a","a",#20011)
#20012=*
stmts(#20012,28,#20001,1,"export * from ""m"";")
#20013=@"loc,{#10000},2,1,2,18"
locations_default(#20013,#10000,2,1,2,18)
hasLocation(#20012,#20013)
stmtContainers(#20012,#20001)
#20014=*
exprs(#20014,4,#20012,0,"""m""")
#20015=@"loc,{#10000},2,15,2,17"
locations_default(#20015,#10000,2,15,2,17)
hasLocation(#20014,#20015)
enclosingStmt(#20014,#20012)
exprContainers(#20014,#20001)
literals("m","""m""",#20014)
#20016=*
lines(#20016,#20001,"export { a } from ""m"";","
")
hasLocation(#20016,#20005)
#20017=*
lines(#20017,#20001,"export * from ""m"";","
")
hasLocation(#20017,#20013)
#20018=*
lines(#20018,#20001,"export type { b } from ""m"";","
")
#20019=@"loc,{#10000},3,1,3,27"
locations_default(#20019,#10000,3,1,3,27)
hasLocation(#20018,#20019)
#20020=*
lines(#20020,#20001,"export type * from ""m"";","
")
#20021=@"loc,{#10000},4,1,4,23"
locations_default(#20021,#10000,4,1,4,23)
hasLocation(#20020,#20021)
#20022=*
lines(#20022,#20001,"export type * as fooTypes from ""foo"";","")
#20023=@"loc,{#10000},5,1,5,37"
locations_default(#20023,#10000,5,1,5,37)
hasLocation(#20022,#20023)
numlines(#20001,5,5,0)
#20024=*
tokeninfo(#20024,7,#20001,0,"export")
#20025=@"loc,{#10000},1,1,1,6"
locations_default(#20025,#10000,1,1,1,6)
hasLocation(#20024,#20025)
#20026=*
tokeninfo(#20026,8,#20001,1,"{")
#20027=@"loc,{#10000},1,8,1,8"
locations_default(#20027,#10000,1,8,1,8)
hasLocation(#20026,#20027)
#20028=*
tokeninfo(#20028,6,#20001,2,"a")
hasLocation(#20028,#20009)
#20029=*
tokeninfo(#20029,8,#20001,3,"}")
#20030=@"loc,{#10000},1,12,1,12"
locations_default(#20030,#10000,1,12,1,12)
hasLocation(#20029,#20030)
#20031=*
tokeninfo(#20031,6,#20001,4,"from")
#20032=@"loc,{#10000},1,14,1,17"
locations_default(#20032,#10000,1,14,1,17)
hasLocation(#20031,#20032)
#20033=*
tokeninfo(#20033,4,#20001,5,"""m""")
hasLocation(#20033,#20007)
#20034=*
tokeninfo(#20034,8,#20001,6,";")
#20035=@"loc,{#10000},1,22,1,22"
locations_default(#20035,#10000,1,22,1,22)
hasLocation(#20034,#20035)
#20036=*
tokeninfo(#20036,7,#20001,7,"export")
#20037=@"loc,{#10000},2,1,2,6"
locations_default(#20037,#10000,2,1,2,6)
hasLocation(#20036,#20037)
#20038=*
tokeninfo(#20038,8,#20001,8,"*")
#20039=@"loc,{#10000},2,8,2,8"
locations_default(#20039,#10000,2,8,2,8)
hasLocation(#20038,#20039)
#20040=*
tokeninfo(#20040,6,#20001,9,"from")
#20041=@"loc,{#10000},2,10,2,13"
locations_default(#20041,#10000,2,10,2,13)
hasLocation(#20040,#20041)
#20042=*
tokeninfo(#20042,4,#20001,10,"""m""")
hasLocation(#20042,#20015)
#20043=*
tokeninfo(#20043,8,#20001,11,";")
#20044=@"loc,{#10000},2,18,2,18"
locations_default(#20044,#10000,2,18,2,18)
hasLocation(#20043,#20044)
#20045=*
tokeninfo(#20045,7,#20001,12,"export")
#20046=@"loc,{#10000},3,1,3,6"
locations_default(#20046,#10000,3,1,3,6)
hasLocation(#20045,#20046)
#20047=*
tokeninfo(#20047,6,#20001,13,"type")
#20048=@"loc,{#10000},3,8,3,11"
locations_default(#20048,#10000,3,8,3,11)
hasLocation(#20047,#20048)
#20049=*
tokeninfo(#20049,8,#20001,14,"{")
#20050=@"loc,{#10000},3,13,3,13"
locations_default(#20050,#10000,3,13,3,13)
hasLocation(#20049,#20050)
#20051=*
tokeninfo(#20051,6,#20001,15,"b")
#20052=@"loc,{#10000},3,15,3,15"
locations_default(#20052,#10000,3,15,3,15)
hasLocation(#20051,#20052)
#20053=*
tokeninfo(#20053,8,#20001,16,"}")
#20054=@"loc,{#10000},3,17,3,17"
locations_default(#20054,#10000,3,17,3,17)
hasLocation(#20053,#20054)
#20055=*
tokeninfo(#20055,6,#20001,17,"from")
#20056=@"loc,{#10000},3,19,3,22"
locations_default(#20056,#10000,3,19,3,22)
hasLocation(#20055,#20056)
#20057=*
tokeninfo(#20057,4,#20001,18,"""m""")
#20058=@"loc,{#10000},3,24,3,26"
locations_default(#20058,#10000,3,24,3,26)
hasLocation(#20057,#20058)
#20059=*
tokeninfo(#20059,8,#20001,19,";")
#20060=@"loc,{#10000},3,27,3,27"
locations_default(#20060,#10000,3,27,3,27)
hasLocation(#20059,#20060)
#20061=*
tokeninfo(#20061,7,#20001,20,"export")
#20062=@"loc,{#10000},4,1,4,6"
locations_default(#20062,#10000,4,1,4,6)
hasLocation(#20061,#20062)
#20063=*
tokeninfo(#20063,6,#20001,21,"type")
#20064=@"loc,{#10000},4,8,4,11"
locations_default(#20064,#10000,4,8,4,11)
hasLocation(#20063,#20064)
#20065=*
tokeninfo(#20065,8,#20001,22,"*")
#20066=@"loc,{#10000},4,13,4,13"
locations_default(#20066,#10000,4,13,4,13)
hasLocation(#20065,#20066)
#20067=*
tokeninfo(#20067,6,#20001,23,"from")
#20068=@"loc,{#10000},4,15,4,18"
locations_default(#20068,#10000,4,15,4,18)
hasLocation(#20067,#20068)
#20069=*
tokeninfo(#20069,4,#20001,24,"""m""")
#20070=@"loc,{#10000},4,20,4,22"
locations_default(#20070,#10000,4,20,4,22)
hasLocation(#20069,#20070)
#20071=*
tokeninfo(#20071,8,#20001,25,";")
#20072=@"loc,{#10000},4,23,4,23"
locations_default(#20072,#10000,4,23,4,23)
hasLocation(#20071,#20072)
#20073=*
tokeninfo(#20073,7,#20001,26,"export")
#20074=@"loc,{#10000},5,1,5,6"
locations_default(#20074,#10000,5,1,5,6)
hasLocation(#20073,#20074)
#20075=*
tokeninfo(#20075,6,#20001,27,"type")
#20076=@"loc,{#10000},5,8,5,11"
locations_default(#20076,#10000,5,8,5,11)
hasLocation(#20075,#20076)
#20077=*
tokeninfo(#20077,8,#20001,28,"*")
#20078=@"loc,{#10000},5,13,5,13"
locations_default(#20078,#10000,5,13,5,13)
hasLocation(#20077,#20078)
#20079=*
tokeninfo(#20079,6,#20001,29,"as")
#20080=@"loc,{#10000},5,15,5,16"
locations_default(#20080,#10000,5,15,5,16)
hasLocation(#20079,#20080)
#20081=*
tokeninfo(#20081,6,#20001,30,"fooTypes")
#20082=@"loc,{#10000},5,18,5,25"
locations_default(#20082,#10000,5,18,5,25)
hasLocation(#20081,#20082)
#20083=*
tokeninfo(#20083,6,#20001,31,"from")
#20084=@"loc,{#10000},5,27,5,30"
locations_default(#20084,#10000,5,27,5,30)
hasLocation(#20083,#20084)
#20085=*
tokeninfo(#20085,4,#20001,32,"""foo""")
#20086=@"loc,{#10000},5,32,5,36"
locations_default(#20086,#10000,5,32,5,36)
hasLocation(#20085,#20086)
#20087=*
tokeninfo(#20087,8,#20001,33,";")
#20088=@"loc,{#10000},5,37,5,37"
locations_default(#20088,#10000,5,37,5,37)
hasLocation(#20087,#20088)
#20089=*
tokeninfo(#20089,0,#20001,34,"")
#20090=@"loc,{#10000},5,38,5,37"
locations_default(#20090,#10000,5,38,5,37)
hasLocation(#20089,#20090)
#20091=*
entry_cfg_node(#20091,#20001)
#20092=@"loc,{#10000},1,1,1,0"
locations_default(#20092,#10000,1,1,1,0)
hasLocation(#20091,#20092)
#20093=*
exit_cfg_node(#20093,#20001)
hasLocation(#20093,#20090)
successor(#20012,#20014)
successor(#20014,#20093)
successor(#20004,#20006)
successor(#20008,#20010)
successor(#20011,#20012)
successor(#20010,#20011)
successor(#20006,#20008)
successor(#20091,#20004)
numlines(#10000,5,5,0)
filetype(#10000,"javascript")